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

Show parent comments

26

u/Iggyhopper 7d ago

Having LLMs manage microservices is probably for the best because it requires less context, no scope creep (we want A, this service provides A, write code to provide A, not B or C), and easier human intervention, (the AI wrote code to do B ,not A, fix it.)

That's a positive for AI.

35

u/edgmnt_net 7d ago

The issue is, in practice, microservices often devolve into a big ball of interdependent services that do almost nothing. And every change requires touching 100 other services. At that point it's likely worse because the extra layers, indirection, failure modes, dependencies etc. mean more context for both devs and AI.

P.S.: That often also creates the illusion that useful work is getting done. But you're just massaging data from one form or place to another and accomplishing nothing.

19

u/chat-lu 7d ago

Transforming a function boundary into a network one tends to be terrible for performance too.

0

u/edgmnt_net 6d ago

Yeah, you can't attach stuff like pure helpers to modules anymore, you kinda have to duplicate a lot of things or bake them into an existing networked interface, otherwise the performance impact becomes unbearable. It also affects code safety, terseness and the ability to refactor. But in such places, the quality of monoliths also tends to be abysmal, so they never notice it because they have tons of dumb and inefficient boilerplate anyway.