Microservices architecture gets recommended by default far more often than it should be. It solves real problems — but they're problems of scale and team size that most products don't have on day one, and the cost of adopting it early is real and often underestimated.
What a monolith actually gets you
A well-structured modular monolith (which is what a properly organized NestJS backend gives you) gets you simpler deployment, simpler debugging (one codebase, one set of logs), and faster iteration when a small team is still figuring out the product. Module boundaries within the monolith still enforce separation of concerns — you're not giving up structure, just avoiding network calls between every internal boundary.
When microservices genuinely pay off
- Multiple teams need to deploy independently without blocking each other.
- Different parts of the system have genuinely different scaling needs (e.g. an AI inference service that needs GPU resources, separate from the main API).
- You need to isolate a failure-prone or high-risk component so it can't take down the whole system.
The cost nobody mentions upfront
Splitting a system into services means you now need service discovery, network-level error handling, distributed tracing, and a way to reason about data consistency across service boundaries. For a small team, that operational overhead often outweighs the architectural benefit — you're trading a code-organization problem for an infrastructure problem.
Our default recommendation
Start with a well-structured modular monolith. Pull a specific piece out into its own service when there's a concrete, current reason to — not a hypothetical future one. This is exactly the trade-off we walk through during Architecture for any new build, and it's a big part of why our School Management System, for example, runs as a modular NestJS backend rather than a service mesh.
Related services
Related technologies
Related articles
When to Modernize a Legacy System (and When Not To)
Not every old system needs a rewrite. The ones that genuinely do usually share a specific set of warning signs.
How to Choose the Right Technology Stack
The right stack is the one that matches your team, your timeline, and your product's actual requirements — not the one with the most hype behind it.

