The Microservice community favors an alternative approach: Smart endpoints and dumb pipes.
Applications built from Smart endpoints and dumb pipes aim to be as decoupled and as cohesive as possible - they own their own Domain Logic and data and act more as filters in the classical UNIX sense - receiving a request, applying logic as appropriate and producing a response.
Typically, these are choreographed using simple RESTish protocols rather than complex protocols such as WS-Choreography or BPEL or orchestration by a central tool.
The two protocols used most commonly are HTTP request-response with resource API's and lightweight messaging. The best expression of the first is
Be of the web, not behind the web -- Ian Robinson
Smart endpoints and dumb pipes teams use the principles and protocols that the world wide web (and to a large extent, Unix) is built on. Often used resources can be cached with very little effort on the part of developers or operations folk.Smart endpoints and dumb pipes or something similar is a requirement to do Internet Scale products where: