Comparisons

Monolith vs Microservices

A monolith is one deployable codebase; microservices split the system into many independently-deployed services. The trade is simplicity vs independent scaling and team autonomy.

1 min read·7 sections
Open the interactive version → diagrams, practice & more

Overview

A monolith keeps everything in one process and one deploy — easy to build, test, and reason about, with in-process calls instead of network hops. Microservices break the system along service boundaries so teams ship independently and each piece scales on its own — but you pay with network latency, distributed failures, and a lot more operational surface.

Monolith vs Microservices: key differences

MonolithMicroservices
DeployOne unitMany independent units
CallsIn-process (fast, simple)Network (latency, retries, failures)
ScalingWhole app togetherPer-service
Team autonomyCoordinatedIndependent per service
Ops complexityLowHigh (discovery, tracing, mesh)

When to use Monolith

Early-stage products, small teams, or any system where speed of iteration matters more than independent scaling. Most apps should start here.

When to use Microservices

Large orgs with many teams, parts of the system with very different scaling/availability needs, or a monolith that has become a deployment bottleneck.

Verdict

Start with a (well-modularized) monolith and extract microservices only when team size or scaling pressure justifies the operational cost. Premature microservices are a common, expensive mistake.

Common questions

Are microservices better than a monolith?

Not inherently — they trade simplicity for independent scaling and team autonomy. For most teams a clean monolith is faster to build and operate until scale forces a split.

When should I move to microservices?

When independent deployment, per-service scaling, or team boundaries are causing real pain in the monolith — not before.

Part of Comparisons on SystemLore — system design explained with 148 deep topics, interactive diagrams, and a build-it-yourself game. Build this one →