Updated September 2026 · Written and maintained by the Progression Agency strategy team
Monolith versus microservices is the architecture decision most likely to be made for the wrong reasons. This guide explains what each means, adds the modular monolith that most teams should actually choose, compares them on speed of development, scaling, reliability, cost, team structure and operations, and gives a rule for when to split a system into services.
On this page · 8 sections
The short answerStart with a modular monolith: one deployable application with clear internal boundaries, one database, one pipeline. Move to microservices only when specific parts need to scale, deploy or fail independently, when separate teams own separate domains, or when technology constraints demand different runtimes. Microservices trade development simplicity for operational complexity: they need mature DevOps, observability and a team large enough to own several services. For most business applications and early SaaS products, the monolith wins on cost and speed for years.
Comparisons are based on each project’s official documentation as linked in the text. Progression Agency builds with all of the technologies compared and has no affiliate relationship with any of them.
Definitions
Monolith
One application, one codebase, one deployment, usually one database. All features run in the same process and call each other directly. Simple to build, test, deploy and debug; harder to scale selectively and to keep tidy as it grows without discipline.
Modular monolith
A monolith organized into modules with explicit boundaries and interfaces (for example, orders, billing, accounts), enforced by code structure and tooling, still deployed as one unit. It keeps the operational simplicity of a monolith while making later extraction of services possible.
Microservices
Many small, independently deployable services, each owning its data and communicating over the network (HTTP, gRPC, messaging). Each service can scale, deploy and fail on its own and can use its own technology. The cost is distributed-systems complexity: network failures, data consistency, service discovery, observability and many pipelines.
| Monolith | Modular monolith | Microservices | |
|---|---|---|---|
| Deployment units | 1 | 1 | Many |
| Databases | 1 | 1 (module-scoped tables) | One per service |
| Development speed (early) | Fastest | Fast | Slowest |
| Scaling | Whole app | Whole app | Per service |
| Fault isolation | Low | Low | High |
| Team structure | One team | One or few teams | Team per service |
| Operations | Simple | Simple | Complex (orchestration, observability, networking) |
| Testing | Simple | Simple | Complex (contracts, integration) |
| Technology freedom | One stack | One stack | Per service |
| Typical fit | Small apps, MVPs | Most business apps and SaaS | Large products, many teams, uneven load |
Why microservices are tempting and often wrong
Microservices were popularized by companies operating at enormous scale with hundreds of engineers. The benefits are real at that scale; the costs are real at every scale. A five-person team running twelve services spends its time on infrastructure instead of product, and a distributed monolith (services that must deploy together) is worse than either extreme. Amazon’s own Prime Video team published a case in 2023 of consolidating a microservice pipeline into a monolith to cut cost (Prime Video Tech blog), which is a useful reminder that the arrow points both ways. Martin Fowler’s MonolithFirst essay makes the same case.
When microservices are the right call
- Parts of the system have very different load profiles (a search or media-processing component that must scale independently).
- Separate teams own separate business domains and need to deploy without coordinating.
- Reliability requirements demand that one component failing does not take down the rest.
- Different components genuinely need different runtimes (for example, a Python machine-learning service beside a Node API).
- The organization already has platform engineering, CI/CD, observability and on-call practices.
When a monolith (modular) is the right call
- One team, or a few, building one product.
- Requirements are still changing and boundaries are not yet clear.
- Load is modest or uniform.
- Operations capacity is limited.
- Speed of delivery matters more than independent scaling.
How to build a monolith that can split later
- Organize code by business domain, not by technical layer.
- Give each module a public interface and forbid reaching into another module’s internals.
- Keep module data in module-owned tables and avoid cross-module joins in application code.
- Use events or explicit calls between modules so that dependencies are visible.
- Automate boundary checks in CI.
- Extract a service only when a specific module needs independent scaling, deployment or ownership.
Cost and operations comparison
| Concern | Monolith / modular monolith | Microservices |
|---|---|---|
| CI/CD pipelines | One | One per service |
| Hosting | One platform or container | Orchestration (Kubernetes, ECS) or many platform services |
| Observability | Logs and metrics for one app | Distributed tracing, correlation, per-service dashboards |
| Data consistency | Transactions | Sagas, eventual consistency |
| Local development | Run one app | Run many or mock them |
| Security surface | One boundary | Many network boundaries, service auth |
| Monthly infrastructure (planning) | Lower | Higher, plus engineering time |
Serverless and other options
Serverless functions can implement either style: a monolith deployed as a few functions, or services as many. Event-driven architectures and the modular monolith are not exclusive; most modern SaaS products are modular monoliths with a few extracted services (search, media, notifications) and queues between them. See backend development services and SaaS hosting.
How Progression Agency architects applications
We build modular monoliths by default, in Next.js and Node or Django, with queues for background work and clean module boundaries, and we extract services only when a documented need appears. Architecture decisions are written down with the reasons. See custom software development, API development and choosing a tech stack.
Deciding on an architecture?
Describe the product, the team and the load; we will recommend monolith, modular monolith or services and explain why.
Getting found in search
AI, AEO and what is changing
Paid media and lead generation
Websites and design
Choosing and working with an agency
Software and app development
Web development, platforms and hosting
- React vs Vue vs Angular
- Svelte vs React
- Astro vs Next.js
- Next.js vs React
- Web development frameworks
- What is a tech stack
- SSR vs CSR vs SSG
- React Native vs Flutter
- Vercel vs Netlify
- Cloudflare vs AWS
- AWS vs Azure vs Google Cloud
- Web hosting types compared
- Hosting for React and Next.js
- SaaS hosting
- WordPress hosting guide
- Backend hosting options
- Website hosting for small business
- Headless CMS vs traditional CMS
- WordPress alternatives
- Best CMS platforms
- Webflow vs WordPress
- Wix vs Webflow
- Framer vs Webflow
- Shopify vs WooCommerce
- Custom software vs off-the-shelf
- Website development cost
- Custom website development services
- React development company
- Next.js development company
- WordPress development company
- Webflow development agency
- Front-end development company
- WordPress maintenance services
- Ecommerce website redesign services
- Website migration services
- DevOps services
- Cloud migration services
- Website speed optimization services
- Website security services
Social, content and brand
By industry and by situation
Frequently asked questions
What is the difference between a monolith and microservices?
What is a modular monolith?
Are microservices better than a monolith?
Should a startup use microservices?
When should I split a monolith?
What is a distributed monolith?
Are microservices more scalable?
Are microservices more expensive?
Do microservices need Kubernetes?
What is the modular monolith vs microservices debate?
Can serverless be a monolith?
How do microservices handle data?
What did Amazon Prime Video do?
Which does Progression Agency use?
What is the best architecture for a SaaS product?
Need software built?We design, build and support custom software, web apps and SaaS platforms, with a written scope first.
Get a free marketing proposal
Tell us what you are trying to grow and we will come back with a plan, not a pitch deck. Same-day reply on weekdays.
