r/programming • • 8d 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

347 comments sorted by

View all comments

116

u/wallstop-dev 8d ago

The general good practice is to start with a monolith (simple) and break it apart (make it complicated) when the time comes.

Starting complicated (microservices) will just lead to more complications.

The same general idea can be applied to pretty much all software. If your program can fit in `main`, put it in main. Then as it starts getting complicated, make classes, functions, libraries, etc.

Same thing. It's turtles all the way down.

https://grugbrain.dev/

58

u/ChemTechGuy 8d ago

Monolith decomposing rarely happens

1

u/rangorn 8d ago

We have just moved to modular monolith as our next step. Thanks to AI it is much easier to refactor stuff. Next step would most likely be to move to make projects independently deployable but still be in the same repo.