I&#x27;m sort of playing devil&#x27;s advocate here, but:<p>&gt; Got a service that was rushed out the door and isn&#x27;t maintainable anymore? Rewrite it! 2 weeks later you have erased a bunch of technical debt and since you kept the same API(s) in place, you have not affected the rest of the services that make up your application.<p>But that&#x27;s also true of a monolith.  Got a piece of your system that isn&#x27;t maintainable any more.  Rewrite it!  2 weeks later you have erased... you get the point.<p>I like the idea of microservices.  I like the idea of the clean boundaries.  As a developer, the separation seems correct to me.  But, unless you&#x27;re actually feeling the pain point of the monolith, it just seems like more work that falls into the category of YAGNI.<p>You also said this:<p>&gt; Delving into a huge, old, debt-riddled monolithic codebase to make changes is hard and scary...<p>I mean, it&#x27;s hard and scary if you don&#x27;t have a high level of test coverage.  If you have great coverage in the old monolith, you should be able to change pieces of it with confidence, no?