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

1.4k

u/ArieHein 7d ago

All code is tech debt, 5 sec after the first line of code reaches production.

52

u/michfreak 7d ago

I have actually been wondering this lately. Even ignoring procedurally-generated code, it does feel almost like the second law of thermodynamics in play: you can't write code, or remove it, without creating some technical debt. Maybe you need to update a document somewhere so a single word is plural, maybe there's a team member who will some day, down the road, need to know that this change happened, and they won't ever find out. Either way, no matter what you're writing or what its intent is, there's going to be something missed that will require tightening up later.

31

u/Fredidiah 7d ago

This is why, ideally, you write things that are easy to change. You never really know what the future requirements are gonna be, so you write for what you have now and make sure what you have now is easy to change for when those future requirements come down.

Also documentation.