JeffJenkins
However, some kinds of requests are fundamentally about integrating the results of a bunch of different services into a response to send to the user. In that case you somehow need to gather the results of your rpcs/events in one place to integrate them. An example is Google search where the normal results, ads, and various specialized results/knowledge graph data need to be integrated to present to the user.
Another consideration is how much you want to be able to isolate services. If you have a user/auth service as in the article which completely encapsulates the database and other resources needed for data about users then you'll end up with a lot of calls into that service. It's a disadvantage because of all the reasons in my original comment, but it's great from the perspective of being able to isolate failures and build resilient systems
If your call graph goes more than one level deep then doing integration/functional testing becomes much more complicated. You have to bring up all of the services downstream in order to test functionality which crosses that boundary. You also have to worry a lot more about different versions of services talking to each other and how to test/manage that. The flip side is that the services will be much smaller, so leaf nodes in the call graph can reach a level of test coverage higher than a monolithic service.
Debugging and performance testing becomes more complicated because when something is wrong you now have to look at multiple services (upstream and downstream) in order to figure out where the cause of some bug or performance issue is. You also run into the versioning issue from above where you have a new class of bug caused by mismatched versions which either have tweaked interfaces or underlying assumptions that have changed in one but not the other (because the other hasn't been deployed and those assumptions are in shared code). The bright side for debugging and performance is that once you know which service is causing the issue it's way easier to find what inside the service is causing the issue. There's a lot less going on, so it's easier to reason about the state of servers.
Obama Will Seek Broad Expansion of Overtime Pay
Ask HN: What happens to older developers?
I started wondering about this in the recent STEM thread. As someone now in their early 30s I'm starting to wonder what the mid-late career as a software developer looks like.Do you have to go into management to continue progressing upwards in pay and influence? I know this isn't the case at some companies (e.g. Google), but is it rare or common to progress as an individual contributor?Is...
Rewriting Reddit (2005)
If you just want to read The World This Week it's available online for free: http://www.economist.com/printedition/
I get all of my (non-HN) news from The Economist's audio edition. It's released weekly and they have a section right at the start about big things happening in business/politics around the world in the last week. It's no more than a couple minutes to scan, and 10-20 in normal speed audio.
The rest of the articles are at least one step back (since they summarize a week of what's happened). Many others are looking at some larger event or trend, sometimes with a recent event/anecdote as a lead in.
I like the audio edition in particular since I can put it on while I'm doing chores or commuting and I'll pick up bits and pieces even if I'm not fully paying attention. I can also have only the sections I care about included, which lets me skip the ones I really don't care about.
One thing to consider since you're using a count+total model is that the most interesting timings will often be the 90th or 99th percentile, so by calculating averages you might be missing useful information.
I ran into some issues with the implementation after switching to using an async framework since the code was no longer a series of nested function calls. Since the current best practice is coroutines where this will still work I think it's okay, but you should consider how someone using callbacks might time their code. In my case I was in a hurry so I manually called the equivalent of your __enter__ and __exit__, but it was pretty ugly and left a lot of room for bugs.
I wonder of the author has been Myers Briggs stuff where people are often slotted as one or the other (although a good assessment will still show where on each axis someone is)
If you want to know more, read Venture Deals[1]. It's very thorough and well written.
[1] http://www.amazon.com/Venture-Deals-Smarter-Lawyer-Capitalis...
If I'm writing code and using a lot of different decorators everywhere I take that as a sign that something is probably wrong.
Another place I looked at did storage by the cubic foot, so you'd never see the stuff in storage (and they could presumably save money by packing it better). Seems like that would be a great model for you to use for people who never actually go to their unit.