<story><title>I&apos;ve been merging microservices back into the monolith</title><url>https://www.bennadel.com/blog/3944-why-ive-been-merging-microservices-back-into-the-monolith-at-invision.htm</url></story><parent_chain><item><author>TeeWEE</author><text>It&amp;#x27;s not about microservices or not, it&amp;#x27;s about domain boundaries, application architecture, coupling. Whether it runs in a service or in a monolith isn&amp;#x27;t the deciding factor of wether its good or bad.&lt;p&gt;Architecture and design is. A 100 services app with 5000 lines of code each could be really badly designed and entangled, and 
a monolith with 500.0000 lines of code could be very well designed...&lt;p&gt;It&amp;#x27;s about code quality, right abstractions, decoupling, cohesion. Correct domain modelling Etc.&lt;p&gt;Microservices are just a tool, but you have to have a good design first.</text></item></parent_chain><comment><author>eternalban</author><text>From a technical point of view, we&amp;#x27;re on the same page. But then there is the reality of modern software development.&lt;p&gt;A few years ago, the new CTO of a Union Square Ventures&amp;#x27; investment tapped me as technical advisor to review this startups efforts to expand their software to new verticals. He came in as part of a reshuffle. He had brought his Director of Engineering from his previous (well known) company, and there was even a Star CEO (which is the reason I signed up!) with a monumentally impressive CV. As compensation, I was billing lawyer hourly rates.&lt;p&gt;After two months of reviewing their existing architecture, and picking the brains of the dev, support, and sales team the new verticals, I came with an &lt;i&gt;architectural&lt;/i&gt; solution to their immediate and long-term needs. I gave them exactly what they said they wanted.&lt;p&gt;What then happened is that, for one, the Star CEO turned out to be an echo chamber of &amp;quot;growth growth growth&amp;quot; and entirely disappointing as a leader of a software company. And this was a SV veteran from both HW and SW side of SV. Huge disappointment.&lt;p&gt;The CTO, who was entirely clueless, apparently gave in to back channel efforts of his DoE to disregard my work product. A few days later I walk into an all hands meeting where the &amp;quot;next generation&amp;quot; was announced to be &amp;quot;a ball of mud&amp;quot; of &amp;quot;microservices&amp;quot;. This same CTO later took me aside and basically offered to give me hush money (&amp;quot;will you be my personal advisor?&amp;quot;) to keep quiet, while getting the same (insanely high) hourly rate for the remainder of my contract.&lt;p&gt;So this is the reality of modern software development. Architecture is simply not valued at extremities of tech orgnizations: the bottom ranks are young developers who simply don&amp;#x27;t know enough to appreciate thoughtful design. And the management is facing incentives that simply do NOT align with thoughtful design and development.</text></comment>
<story><title>I&apos;ve been merging microservices back into the monolith</title><url>https://www.bennadel.com/blog/3944-why-ive-been-merging-microservices-back-into-the-monolith-at-invision.htm</url></story><parent_chain><item><author>TeeWEE</author><text>It&amp;#x27;s not about microservices or not, it&amp;#x27;s about domain boundaries, application architecture, coupling. Whether it runs in a service or in a monolith isn&amp;#x27;t the deciding factor of wether its good or bad.&lt;p&gt;Architecture and design is. A 100 services app with 5000 lines of code each could be really badly designed and entangled, and 
a monolith with 500.0000 lines of code could be very well designed...&lt;p&gt;It&amp;#x27;s about code quality, right abstractions, decoupling, cohesion. Correct domain modelling Etc.&lt;p&gt;Microservices are just a tool, but you have to have a good design first.</text></item></parent_chain><comment><author>pjmlp</author><text>Indeed, if the team is not able to write modular code, it is not putting a network in the middle that it will sort it out, the outcome is just spaghetti network calls.</text></comment>