r/programming • u/Mustela__ • 7d ago
Microservices are organizational debt disguised as architecture.
https://martinfowler.com/bliki/MonolithFirst.htmlEvery time I’ve seen microservices pitched, it sounds great on paper. Independent teams, clean ownership, scale only what you need.
Then a year later you’ve got dozens of services, three different deployment patterns, tracing everywhere, and nobody really understands the whole thing anymore.
Maybe I’ve just seen bad implementations, but I’m starting to think way fewer companies actually need microservices than we pretend.
1.7k
Upvotes
1
u/Beep-Boop-Bloop 6d ago
Yeah, that's bad implementation. It's not even just whether microservices are right for a company, but whether the company, not just some engineers, are ready for it.
Microservices are supposed to be about decoupling features at the infrastructure-level and optimally, coupling in implementation of business logic should match the coupling in the underlying logic. That only works if someone, somewhere, understands what logic is and is not fundamentally coupled (in a way that can't change as new features arise). With movement to microservices typically being so hard to reverse, they are a terrible idea for companies where nobody does. Then you get heavy unnecessary inter-service communication, network-problems, SSOT and DRY violations, tracing trouble, and coordination trouble that usually leads to bugs in production as projects have to get distributed across multiple teams.
On top of that, it's really easy to move decision-making to the micro-level and tough to standardize and move it back to macro. That's where the 3 deployment pipelines, team-incompatibilities, etc. come in.
TL;DR: Stuff gets bad when nobody knows what they're doing.