<story><title>Microservices – Not a free lunch</title><url>http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html</url></story><parent_chain></parent_chain><comment><author>Someone</author><text>See also:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  - Subroutines - Not a free lunch
  - Libraries - Not a free lunch
  - Client-Server - Not a free lunch
  - OO - Not a free lunch
  - Multiprocessing - Not a free lunch
&lt;/code&gt;&lt;/pre&gt;
Many of these arguments apply to these, too. The main difference is that of scale. Latency and call overhead are way larger than for the examples I gave.&lt;p&gt;Improved tooling can bring both down, but not by that much. That&amp;#x27;s why you will not see many micro services that are truly micro. You won&amp;#x27;t see (I hope) a &amp;#x27;printf&amp;#x27; micro service, or not even a &amp;#x27;ICU&amp;#x27; micro service. A regex service might make sense, if the &amp;#x27;string&amp;#x27; it searches in is large and implicit in the call (say a service that searches Wikipedia), but by that time, it starts to look like a Database query. Is that still micro?</text></comment>
<story><title>Microservices – Not a free lunch</title><url>http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html</url></story><parent_chain></parent_chain><comment><author>DanielBMarkham</author><text>I&amp;#x27;m really happy to see DevOps, CD, and Microservices take off, although, as usual, I&amp;#x27;m a little perplexed as to why we need new slang. But hey, if it works to get the message out, I&amp;#x27;m all for it.&lt;p&gt;These things are not new, but like so many other ideas, they&amp;#x27;re just old ideas re-appearing in a context that had forgotten about them.&lt;p&gt;Traditionally, many of the potential problems the author relates have been solved by architectural conceits. For instance, standardize on a programming language and datastore, then share all persistence-related files. (I&amp;#x27;d strongly suggest a FP language, preferably used in a pure manner). Then you&amp;#x27;ve decreased the &amp;quot;plumbing&amp;quot; issues by a couple orders of magnitude, lowered the skill bar for bringing in new programmers, and you can start talking about using some common testing paradigms to work on the other issues.&lt;p&gt;I&amp;#x27;m a huge fan of microservices, but it&amp;#x27;s good to talk about the bad parts too, lest the hype overrun the reality.</text></comment>