The comparison bench / Monolith / Microservices

One deployment. Or many?

A process boundary changes much more than your deployment diagram. Start with the team that has to live with it.

01 / Set the constraints

The context changes the answer.

Select the system context

Five engineers · one product · changing domain boundaries · limited operations capacity

A
Separate the domain. Share the process.

Modular monolith

Business modules communicate in one application. Boundaries are maintained through code and ownership rather than the network.

ONE DEPLOYMENTOrdersBillingShippingDatabaseSELECT A COMPONENT TO INSPECT
service / Orders

The orders module owns its behavior. In-process APIs let it call other modules without network failure, but code boundaries still need enforcement.

+ What becomes easier

  • Local calls and transactions keep change easier to reason about.
  • One deployment and a smaller operating surface.

What you take on

  • Modules share process failures and a release schedule.
  • Boundaries erode without explicit ownership and dependency rules.
B
Separate the domain. Distribute the operation.

Microservices

Services deploy independently and own their data. Each boundary introduces a network contract, operational responsibility, and possible partial failure.

INDEPENDENT DEPLOYMENTSOrdersBillingShippingOrders DBBilling DBShipping DBSELECT A COMPONENT TO INSPECT
service / Orders

Orders has its own release lifecycle and data. Independence depends on stable contracts; a synchronous call chain can still couple availability.

+ What becomes easier

  • Teams can release and scale services independently.
  • Well-isolated services can contain some failures.

What you take on

  • Tracing, contract evolution, and distributed recovery become daily work.
  • Cross-service consistency requires explicit coordination.
02 / Read the trade-offs

Same decision. Different consequences.

Small team

Illustrative 1–5 levels for the selected context. These are authored reasoning aids, not measurements or universal rankings. More operating effort is a cost.

Delivery simplicity

A small team can change one application without coordinating distributed contracts and rollouts.

A / Modular monolith
B / Microservices

Release autonomy

Separate releases are possible, but this team has few independent release streams to support.

A / Modular monolith
B / Microservices

Operating effortCOST

Each independently deployed service adds health signals, deployment paths, and recovery procedures.

A / Modular monolith
B / Microservices

Independent scaling

Services offer finer scaling control. With modest traffic, that flexibility may not repay its cost.

A / Modular monolith
B / Microservices
A direction to explore

Under these constraints,
modular monolith.

A modular monolith keeps the operating burden proportionate to the team. Good module boundaries preserve the option to extract a service when a specific need appears.

Leave room to evolve
  1. 01Enforce module ownership
  2. 02Observe a real release or scaling bottleneck
  3. 03Extract one stable boundary
Explore your own constraints

A diagram cannot decide for your team. Use the differences to ask better questions.