tanjilahmed87@gmail.com

Architecture6 min read

Microservices: The Question Isn't Can You, It's Should You Yet

Almost every team that adopts microservices early is solving an organizational problem they don't have yet with an architecture cost they'll pay immediately.

Tanjil Ahmed

Lead Software Engineer · Notionhive

Microservices solve a real problem: independent teams needing to deploy independently without stepping on each other. That problem requires independent teams to exist first. Adopting the architecture before the organizational need is the single most common cause of the 'microservices made everything slower' stories.

  • One team, one deploy cadence → a well-structured monolith with clear internal module boundaries outperforms a distributed system every time.
  • Distributed transactions across services are genuinely hard — don't take on that complexity speculatively.
  • A modular monolith gets you most of the boundary benefits without the network, serialization, and deployment overhead.
  • Extract a service when a specific piece needs independent scaling or an independent deploy cadence a specific team owns — not before.

I've migrated services out of monoliths successfully, and every successful one had a concrete forcing function — a scaling bottleneck, a team boundary, a compliance requirement — not a general belief that microservices are the more modern choice.

Extract a service when you have a specific reason. 'It felt like the right architecture' is not a reason, it's a cost.