Monoliths Are the Future
I would agree with this article a lot more if it said that most people don't understand the problem microservices are trying to solve, but instead I think it contributes to the confusion.<p>It's true that a microservice doesn't magically create cleaner code, better designs, or anything like that. It can actually make all those things harder. Designing good remote APIs is hard, maintaining consistent code quality over lots of different codebases is hard.<p>All a microservice does is give you a way to independently release the code that lives behind a small chunk of your larger API (e.g. <a href="http://apis.uber-for-cats/v2/litter-boxes" rel="nofollow">http://apis.uber-for-cats/v2/litter-boxes</a>). This is why a good API gateway that's built for microservices is one of the first tools you actually need, and can get you surprisingly far.<p>It turns out that despite the complexity, this is an enormously valuable capability in a lot of different situations. Say you have a monolith that you can only release once every six months and you urgently need to get a new feature out the door. Or maybe half your code can't change very fast because it's mission critical for millions of users, but the other half wants to change really fast because you're trying to expand your product.<p>Of course the big bang refactor into microservices that he describes isn't really going to help you in any of these situations, but then again big bang refactors don't tend to help in much of any situation regardless of whether microservices are involved. ;-)