MV Michael van Leest AI, cloud, and platform engineering
Home Blog About Contact

Blog post

When a modular monolith is the right long-term architecture

A practical guide to when a modular monolith is the right long-term architecture, and why it is often better than premature microservices for small teams.

A modular monolith is often described as a transitional architecture, as if its real job is to wait politely until the team is ready for microservices.

I do not think that is always true.

Sometimes a modular monolith is not the step before the “real” architecture. It is the right long-term architecture.

The important question is operational fit

I do not judge a modular monolith by whether it looks less advanced than a service-based system.

I judge it by whether it helps the team build, change, and operate the product effectively.

For many small teams, that answer is yes.

The modular monolith keeps:

  • deployment simple
  • runtime coordination lower
  • observability more central
  • internal boundaries testable without network overhead
  • ownership clearer when the team is still lean

Those are real advantages, not temporary ones.

Internal boundaries still matter

Calling something a monolith is not an excuse for blurry design.

The architecture only works well long term if the internal boundaries are deliberate.

That usually means:

  • clear module ownership
  • controlled dependencies between modules
  • good separation around data and behavior
  • interfaces that make change safer

In other words, the monolith still needs architecture. It just does not need network boundaries to prove it.

Why this often beats early microservices

Microservices add useful things when the system and team need them.

They also add:

  • more deployments
  • more observability surface area
  • more coordination cost
  • more runtime failure modes
  • more operational ownership to maintain

For a small team, those costs are often heavier than the theoretical architectural benefit.

That is why a modular monolith can be the better long-term choice. It gives the team real boundaries without automatically adding a second operating model.

When I think it is the right long-term choice

I think a modular monolith is a strong long-term answer when:

  • the team is still relatively small
  • the product benefits from cohesive deployment
  • most changes still cross related parts of the system
  • operational simplicity matters more than independent service scaling
  • the internal boundaries can be kept clear without forcing network separation

That is a very normal situation. It does not need to be justified as a compromise.

My default advice on modular monoliths

Choose a modular monolith when it improves the operating model, not only when it buys time.

If the architecture gives the team clear boundaries, safer change paths, and lower operational drag, it may already be doing exactly what you need.

The goal is not to look distributed. The goal is to make the system effective for the team that owns it.

Sometimes that really does mean staying modular and staying monolithic for the long term.

Contact

Working on AI, cloud, or platform modernization?

If you are hiring, shaping a project, or need an experienced technical sounding board, use the contact form and send a little context.