Today's development teams are increasingly faced with an architectural dilemma: build a system as microservices or start with a modular monolith? In recent years, hundreds of posts have been written on this topic, but in practice, everything is not so black and white. Let's be honest, without hype.
What is a modular monolith?
A modular monolith is single application, where the code is divided into clear domain modules (for example, "Payments", "Profiles", "Reports"). Everything runs as one process, one database, one deployment unit.
Advantages:
easier development and debugging;
no overhead on infrastructure;
transactions work "out of the box";
it's easier to hire developers.
Cons:
as the system grows, connectivity increases;
you have to release it in its entirety;
more difficult to scale individual modules.

What are microservices?
Microservices are set of independent services, each is responsible for its part of the business logic and communicates through API or messages.
Advantages:
independent releases;
flexible scaling;
technological freedom.
Cons:
high complexity of infrastructure;
complex transactions (sagas, eventual consistency);
we need stronger engineers and DevOps processes.
When to choose a modular monolith?
Startup or MVP — speed is the most important thing;
A small team of 2–5 developers can easily handle it;
Product without extreme loads;
I want discipline in the code.
And when are the microservices?
The system is growing and loading;
Large team (50+);
Geographical distribution;
Flexible stack requirements.

Honest selection methodology
Question | If the answer is "yes" → | If the answer is "no" → |
|---|---|---|
Need to bring a product to market quickly? | Modular monolith | Consider microservices |
Are there independent domains with different loads? | Microservices | Modular monolith |
Is the team small (up to 10 people)? | Modular monolith | Microservices (if processes are mature) |
Need technological freedom? | Microservices | Modular monolith |
No experience supporting complex infrastructure? | Modular monolith | Microservices (but hire DevOps) |
Total
Modular monolith is a great starting point: it disciplines architecture and does not add unnecessary complexity. Microservices - a scaling tool that is justified only when the system and the team are really ready for it.
The main thing is not to confuse the means and the goals. Architecture should help business, not interfere with it.
In our Telegram channel Codica We share the latest news from the world of development, discuss architecture, technology and IT careers. There you can ask a question, get advice and just chat with like-minded people.
👉 What do you think is better for the project: a modular monolith or microservices?
