Skip to content

Navid's Blog

Ideas, Experiments, and Lessons Learned

Menu
Menu

I Swore Off Microservices — Then Built One Anyway

Posted on March 20, 2026 by Navid

My microservices origin story

I used to roll my eyes every time someone mentioned microservices. “Just use a monolith,” I’d say. “You’re overcomplicating things.” And for years, I was right. Most startups don’t need microservices. They need working features.

But then my side project grew. What started as a simple REST API became something bigger. Multiple teams, different deployment cycles, and one database that everyone was afraid to touch.

When the monolith starts breaking

The problems crept in slowly. One team needed to deploy a small bug fix. Another team was in the middle of a major refactor. Deployments became a negotiation. We started scheduling “code freezes” around holidays.

We had one shared database, and queries were getting slower. Adding indexes felt like performing surgery on a patient who was still awake. Every change had ripple effects.

So I ate my words

After much hesitation, I split our monolith into three services. It wasn’t easy. There were integration challenges, network failures to handle, and a lot of refactoring.

But here’s what nobody talks about: it was also liberating. Teams could move faster. We could scale individual services. The database anxiety disappeared.

What I learned

  • Monoliths are fine until they’re not. Don’t microservices because it’s trendy. Do it when the pain becomes real.
  • Start with a modular monolith. Clean boundaries inside a single codebase save you from many headaches later.
  • Don’t forget the operational overhead. Distributed systems bring distributed problems. Monitoring, logging, and deployment get more complex.

The take

My stance softened. I still think most projects shouldn’t touch microservices. But I’ve stopped being dogmatic about it. Sometimes the monolith is the right choice. Sometimes it’s not.

Technical decisions should be driven by actual problems, not ideology. That’s what I keep reminding myself.

Categories

  • AI Experiments
  • Coding
  • Debugging Stories
  • Hot Takes
  • Ideas
  • Lessons Learned
  • Project Management
  • Uncategorized
  • Vibe Coding

Recent Posts

  • How I Handled My First Production Outage (And What I Learned)
  • I Finally Fixed Our Slow Database Queries — Here’s What Actually Worked
  • I Finally Fixed Our Slow Database Queries — Here’s What Actually Worked
  • Why I Stopped Using Microservices for Small Projects
  • I Gave AI Full Access to Our Production Database. Here’s What Happened