Skip to content
Go back

I Don't Like Microservices, and Here's Why

Published:  at  01:52 PM

Hello everyone! I’m Hưng Phạm, a backend developer who once thought microservices were the standard for every system — until I implemented and maintained them myself. And now, after many nights “wrestling” with dozens of logs from 4–5 different services, I’ve realized one thing: microservices are not the right solution for every system. Why? Let me share my story in detail, hoping it gives you a more realistic view of microservices.

1️. The Beginning — Microservices Were the “Holy Grail” of Tech

The first day I learned about microservices, the feeling was truly “awesome”. The advertisements, the case studies from giants like Netflix, Amazon, Uber, Google… had me nearly mesmerized:

I immediately dove into learning Docker, Kubernetes, Service Mesh, automated CI/CD pipelines, API Gateway… the list of knowledge to learn was endless, to the point where project deadlines weren’t as long as the knowledge needed to grasp. I thought I was opening a new horizon for my backend career.

2️. But Reality Wasn’t Like the Dream

When I officially “microserviced” a few team projects — a small team of only 4–5 devs, I truly “absorbed” that microservices aren’t simply about splitting code. It’s a complex web that nearly drove me crazy:

3️. What Microservices “Steal” from Small Teams

With a small team, I realized microservices were “stealing” many valuable things from us:

  1. Focus:

    • Monolith: One repo, one codebase, the whole team “kneading” together, easy to communicate, easy to understand the big picture.
    • Microservices: Each person “camps” in one service, communicating via API, losing cohesion, easily creating “silos” (factions) within the team.
  2. Initial development speed:

    • Monolith: Deploy once, rollback once, small changes go up quickly.
    • Microservices: Scattered deploys, have to adjust configs in many places, rollback is also complex, much more time-consuming.
  3. The joy of releasing features:

    • Monolith: When there’s a feature, release it immediately, fast release, user feedback almost instant.
    • Microservices: Release each service, must ensure no conflicts, no API breakage, stressful because of coordinating multiple services simultaneously.

4️. But Microservices Aren’t Exactly “Evil”

I don’t deny that microservices have very valuable strengths:

5️. So When Should You Use Microservices?

I think microservices only truly shine when:

6️. And When Shouldn’t You “Go Fancy”?

If you fall into these cases, I advise you to think carefully before “jumping” into microservices:

7️. Conclusion: I Don’t Hate Microservices, I Just Don’t Like “Trend-Chasing” Meaninglessly

Microservices aren’t something evil, nor are they “good just because they exist”. I just don’t like small teams “copying” trends just because they sound cool, then making themselves miserable with an unnecessarily complex system.

The most important thing, in my opinion, is still:

In summary:

8️. And What About You?

Do you have a brilliant microservices success story? Or a failure that “shattered your face”? I’d really love to hear your story, so we can learn together, share experiences, and not waste time “taking detours” like I did.


Share this post on:

Previous Post
AI Won't Take Your Job – Your Own Obsolescence Is Making You Lose It!