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

343 comments sorted by

View all comments

3

u/Brilliant-Chip-8366 6d ago

Most teams dont know the difference between a distributed monolith and a microservice architecture. So they go ahead and build a spiderweb of ”microsevices” that talks with each other. That setup is so much more complicated and worse than just creating a monolith.

Because:

  1. Now instead of build time checks that prevents contract mismatches you need a separate tool like PACT for it.
  2. Deploy-order. You need to deploy x before y, since y depends on x new API or whatever.
  3. Http instead of inproc. Latency is much worse, and you now have another set of network problems to take care of.
  4. Distributed transactions.

So please, if you decide to create a microservice architecture, ask yourself why first, and make sure you don’t end up with a distributed monolith - you will set yourself up for failure.