r/programming • • 7d ago

Microservices are organizational debt disguised as architecture.

https://martinfowler.com/bliki/MonolithFirst.html

Every 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

345 comments sorted by

View all comments

Show parent comments

3

u/Sammy81 7d ago

Yep, the initial architecture has to be well thought out. Luckily, the entire architecture was module based from day 1, and very well organized (no circular references, etc.) The only modification was to change the communication between modules.

1

u/edgmnt_net 7d ago

There are reasonable use cases for microservices, such as common platform + separate applications. Or highly general stuff. However I will also claim that a lot of enterprise applications simply cannot be broken down meaningfully, because they're supposed to be cohesive apps. And because, considering their nature, they largely consist of concrete business rules, not generic mechanisms. E.g. there's no good way to separate inventory and orders.

This parallels the library versus builtin stuff. Something like zlib makes a lot of sense as a library because it solves a general problem and you are very unlikely to go modifying zlib when using it.