The Cult of Microservices: How Trend-Driven Engineering Keeps Sabotaging Itself



Every now and then, someone breaks through the static of LinkedIn’s buzzword parade and delivers a truth so obvious, so grounded in lived engineering reality, that it hits like a clean breeze in a server room. The inspiration for this piece came from exactly such a post — a simple observation that dared to question the dogma:

“The software industry has developed an obsession with microservices, often without real necessity… One good monolithic architecture supports 80% to 90% of existing applications…”

At last, someone said it.

For the better part of a decade, microservices have been treated less like an architectural choice and more like a moral imperative. Recruiters, CTOs, architects riding the hype wave — all of them repeating the same tired mantra: "We’re moving to microservices." As if that sentence alone can summon technical sophistication and guarantee scalability.

What it actually summons, more often than not, is chaos.


The Fashion Victim Architecture

Engineering, ironically, has fallen prey to fashion trends. A generation ago, it was SOA. Then ESBs. Then REST vs. SOAP. Then serverless everything. Now, the high priests of modern development preach microservices as though monoliths are shameful relics of a barbaric past.

This philosophical shift didn’t emerge from thoughtful analysis. It emerged from imitation.

Netflix did it.

Amazon did it.

Uber did it.

So naturally, your local mid-sized company selling appointment scheduling software clearly needs:

  • Kubernetes

  • A service mesh

  • Distributed tracing

  • Circuit breakers

  • API gateways

  • 45 repositories

  • 19 Docker images

  • A full-time DevOps priesthood

It’s engineering theater — an expensive, fragile Rube Goldberg machine designed to impress executives, not solve the actual problem at hand.


The Case for the Humble Monolith

Here’s the secret the industry desperately avoids admitting: the monolith is not obsolete. It never was. It’s simply unfashionable in boardrooms where architecture is treated like a brand accessory.

A well-designed monolith — modular, layered, disciplined — delivers:

✔ Superior performance

Function calls beat network calls every single time.

✔ Lower latency and fewer points of failure

No distributed system means no distributed failure.

✔ Easier debugging

You don’t need a PhD in observability to understand what failed.

✔ Faster development and onboarding

New developers don’t have to spelunk through 20 repos just to understand a login flow.

✔ Lower operational cost

No need for massive orchestration, infrastructure, and DevOps overhead.

✔ Predictable deployments

You’re not juggling 17 services and praying dependency order doesn’t explode.

In other words: the monolith is simply practical. And the overwhelming majority of software needs practicality, not architectural vanity.


Why Microservices Fail So Spectacularly

Microservices aren’t inherently bad. They’re just horribly misapplied.

A sane microservices architecture requires:

  • A mature engineering culture

  • Ironclad domain boundaries

  • Rigorous documentation

  • Observability baked into the bones

  • Teams capable of owning services end-to-end

  • Organizational discipline to resist fragmentation

Most companies have none of these.

So what happens?

“Distributed Monoliths”

The worst of both worlds: tightly coupled services spread across machines, all depending on each other like a jittery house of cards.

Latency Tax Hell

Operations that used to take 0.1ms now take 10–50ms across the network — multiplied by dozens of calls.

Exploding Operational Overhead

Suddenly you need SREs, service mesh gurus, Kubernetes whisperers, on-call rotations that span multiple teams, and an incident response playbook thicker than an airport phonebook.

Endless Breakage

Services deploy independently — which is wonderful until one team deploys a minor change that silently breaks five other services.

No Real Scalability Gains

Most apps never reach the scale where microservices provide actual benefits. Meanwhile the cost — human, technical, and financial — skyrockets.


Why the Industry Keeps Making the Same Mistake

Because microservices sound impressive.

Because executives love buzzwords.

Because CTOs would rather look modern than be effective.

Because engineers often mistake complexity for sophistication.

Because vendors profit enormously from selling tools to manage the complexity they helped create.

And because LinkedIn turned into a feedback loop of people trying to look like the next Amazon architect, even when they’re building line-of-business apps used by 300 people.


When Microservices Actually Make Sense

Let’s be fair. Microservices are the right choice when:

  • You have multiple large teams that must work independently

  • Your application’s domains are truly decoupled

  • You need independent scaling for different components

  • Your system handles massive, Netflix-level traffic

  • Deployment independence produces real, measurable business benefit

These are legitimate needs — but they represent perhaps 5% to 10% of all software built today.

For everything else, microservices are a hammer looking desperately for nails.


The Real Problem Isn’t Architecture — It’s Ego

Engineers don’t want to be seen as building “simple” systems.

Architects want to be the visionaries who “modernized the stack.”

CTOs want something flashy to put in slide decks.

And consultants want to sell multi-year transitions into distributed architectures.

Meanwhile, the quiet truth persists: a well-built monolith will outperform a poorly built microservices system any day.

The difference is humility. Monoliths require craftsmanship. Microservices allow people to pretend complexity equals correctness.


Stop Chasing Trends. Start Solving Problems.

The LinkedIn post that sparked this article cut straight to the heart of the matter: before overcomplicating, ask whether the system truly needs microservices.

Most don’t.

Most never will.

Most companies are bleeding time, money, and reliability on an architecture that adds no measurable value.

The industry doesn’t need more clusters, more containers, more orchestration layers.

It needs clarity.

It needs focus.

It needs the courage to choose the simplest architecture that works — not the one that wins you applause at conferences.

And it needs more people willing to say what that post said so plainly.

Because they’re right.

And the sooner the industry accepts it, the faster we can get back to building software that’s reliable, sane, and sustainable — instead of monuments to overengineering.

Comments