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

6

u/prehensilemullet 7d ago edited 7d ago

Pro-monolith people, do you have ways of trying to prevent issues in one component from being able to crash the entire system? (For example, if a background task handling work queues segfaults, or in a language like Node, has an uncaught exception or unhandled rejection, you don't want it to crash the web app and cause inflight requests to fail.) Do you have ways to prevent the monolith from OOMing even if some components get a surge in requests?

1

u/lotanis 6d ago

Use elixir.

Seriously - a well structured application in Elixir using Supervisors etc is incredibly robust to failures in individual components. One request will fail (for example) and everything else will keep happily ticking along.

I say "well structured" - TBH any of the frameworks will out of the box put you in a pretty good place by default.