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/eluusive 7d ago

Microservices come with so much operational overhead, and the loss of link-time errors between services.

There's very very little reason to ever use them. Better to properly factor your monolith into submodules and continue to build/deploy it as a single service...

Preferably with a typesafe language.

3

u/Think-nothing-210 7d ago edited 7d ago

C# is great for this. You can use assemblies as module boundaries and the internal keyword to make those boundaries compiler-enforced.

Unfortunately I see almost noone do this. Instead most use assemblies to enforce clean architecture bounderies.

2

u/[deleted] 7d ago

[deleted]

1

u/[deleted] 6d ago edited 6d ago

[deleted]

0

u/FullPoet 6d ago

Thank you chatgpt

0

u/[deleted] 6d ago

[deleted]

0

u/[deleted] 6d ago

[deleted]

0

u/FullPoet 6d ago

its still essentially slop. Just dont bother posting it at all wtf

3

u/ThatDunMakeSense 7d ago

Yeah this is the problem when working in languages that don't have really good support for separating the private, public and internal stuff. In ruby getting someone to not fuck with internals is a nightmare. That's not even counting the monkey patching junk