Tech - Balance is the key
In the world of services, a challenge we will face is the granularity of a service. As a principle, it is recommended that a service should be granular. As more and more services are built, this allows developers to 'compose' or 'combine' the services to achieve a desired feature. But, this has a potential pitfall. Often, there may be a need to combine the services in a certain way. The options are either to modify the service or to have another service on that does the aggregation. There are pros and cons both ways. Here is an interesting example from 3Scale - http://3scale.github.io/2013/04/18/accelerate-your-mobile-api-with-nginx-and-lua/ . And, an equally interesting article on being pragmatic vs dogmatic - http://dlo.me/archives/2013/04/16/there-is-no-right-way-to-develop-software/ . If you are building services/API, there may well be a case for sometimes being pragmatic or dogmatic or both! You may need to evaluate each scenario ...