The &quot;genesis&quot; (perhaps) of the current rise of microservices might be the Yegge Platform rant and the 2 Pizza rule<p><a href="https:&#x2F;&#x2F;plus.google.com&#x2F;+RipRowan&#x2F;posts&#x2F;eVeouesvaVX" rel="nofollow">https:&#x2F;&#x2F;plus.google.com&#x2F;+RipRowan&#x2F;posts&#x2F;eVeouesvaVX</a><p><a href="http:&#x2F;&#x2F;www.businessinsider.com&#x2F;jeff-bezos-two-pizza-rule-for-productive-meetings-2013-10" rel="nofollow">http:&#x2F;&#x2F;www.businessinsider.com&#x2F;jeff-bezos-two-pizza-rule-for...</a><p>Wherein he describes Dread Pirate Bezos&#x27; edict:<p><pre><code>  His Big Mandate went something along these lines:

  1) All teams will henceforth expose their data and functionality through service interfaces.

  2) Teams must communicate with each other through these interfaces.

  3) There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team&#x27;s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.

  4) It doesn&#x27;t matter what technology they use. HTTP, Corba, Pubsub, custom protocols -- doesn&#x27;t matter. Bezos doesn&#x27;t care.

  5) All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.

  6) Anyone who doesn&#x27;t do this will be fired.
</code></pre>
and<p><pre><code>  Amazon&#x27;s Jeff Bezos has a solution for this problem. He calls it the &quot;two pizza rule&quot;: Never have a meeting where two pizzas couldn&#x27;t feed the entire group.

</code></pre>
You&#x27;ll note that nothing in there has to do with technical debt, or unmaintainability of apps, or test suite runtimes, or monoliths, or docker, or any sort of technical problems. Microservices are a technical solution to an organizational scalability &#x2F; coupling problem.<p>All too often I see small, co-located teams (&lt;10 people) adopting a microservice architecture because #reasons which are ill-defined.<p>Docker is awesome, microservices are awesome, but they come with a lot of taxes to pay, and tl;dr - until you know you need to pay those taxes, you should stick with a monolith.