Archive | October, 2013

SmartStack: Service Discovery in the Cloud – Airbnb Engineering

The properties of an ideal solution: – Backends capable of serving requests for a particular service would automatically receive these requests – Load would be intelligently distributed among backends, so no backend is ever doing more work than the rest and so that requests are automatically routed to the least busy backend – A backend that develops problems would automatically stop receiving traffic – It should be possible to remove load from a backend without affecting anything else in the system, so that debugging is possible – There should be perfect introspection, so that you always know which backends are available, what kind of load they are receiving, and from which consumers – Consumers should be minimally affected by changes in the list of backends; ideally, such changes would be transparent to consumers – There should be no single points of failure – the failure of any machine anywhere in the system should have no impact

(Full Story: )


Inside GitHub’s Super-Lean Management Strategy–And How It Drives Innovation

At GitHub, people work on an open allocation basis. Unlike traditional companies where projects are assigned top-down, GitHubbers tackle whatever projects they want, without any formal requests or managerial interference.

(Full Story: )

If Java Is Dying, It Sure Looks Awfully Healthy | Dr Dobb’s

On GitHub, which is the mecca for hip projects these days, Java was in the #3 slot both last year and this year as the language of choice for projects. (Its position there below JavaScript and Ruby is somewhat historical: gitHub was originally a primarily Ruby repository.) On the controversial Tiobe index, Java retains its overall #2 place, behind C. (C and Java have gone back and forth for the top two spots since 2002). And on Ohloh, the biggest portal to stats on the open-source community, Java retains the same percentage of total commits that it has enjoyed for the last seven years.

(Full Story: )

Google CIO Ben Fried on How Google Works Together

There are very good reasons for the cocoon: Google is a huge company, with a ton of highly sensitive and confidential information about its own strategy and operations, and that of its five-million-plus Google Apps enterprise productivity suite customers. Google can’t be cavalier about security, and it can’t let its employees take too many risks. It takes time and effort to make nifty new apps appropriate for the enterprise, and someone has to oversee that. “The important thing to understand about Dropbox,” Fried said, “is that when your users use it in a corporate context, your corporate data is being held in someone else’s data center.”

(Full Story: )

Versioning RESTful Services v2 | Howard Dierking

Revised Summary So, in my revised thinking, the overarching principle remains the same: how you version depends on what part of the uniform interface you’re changing But I’ll add another principle (well, borrowed it from Fielding actually): all important resources must have URIs This ends up impacting versioning strategies as follows: If you’re adding only, go ahead and just add it to the representation. Your clients should ignore what they don’t understand If you’re making a breaking change to the representation or changing the meaning of the underlying resource, create a new resource with a new name (URI) Use content negotiation in such a way that it can provide an optimized path to resources, but always give the client control (by way of links) to make different choices I hope that this discussion continues to prove useful. And should I continue to revise my thinking, I will try and be a bit more timely in publishing my thoughts.

(Full Story: )