← Module 07 · System Architecture

MODULE 07 · SYSTEM ARCHITECTURE

Monolith

A monolith is an application whose major features are built and deployed together as one application.

01 · What is it?

What is it?

A monolith packages the main application capabilities into one deployable unit.

That unit may contain separate modules such as accounts, catalog, checkout, and reporting. “One application” describes how the system is built and shipped; it does not mean every feature must be in one file or that the code cannot have boundaries.

Important distinction
A monolith is an architecture and deployment choice, not a synonym for “old,” “simple,” or “badly designed.” A well-structured monolith is often a deliberate starting point.
02 · Think of it like...

Think of it like...

Think of a department store with one building, one operating schedule, and shared back-office systems.

Inside the building, different departments can still have clear responsibilities. Customers enter through the same place, and a release to the building may affect all departments. A monolith has a similar shape: many capabilities live behind one application boundary and are shipped together.

ONE DEPLOYABLE APPLICATION
Accounts
Catalog
Checkout
Reporting
03 · What does it do?

What does it do?

Packages capabilities

It keeps multiple business functions in one application codebase and runtime.

Shares a release

A production deployment normally carries the application as one unit, even when only one module changed.

Enables local coordination

Modules can call each other directly and often share application libraries, transactions, and data access patterns.

User requestMonolithic applicationDatabase / external systems
04 · Where is it used?

Where is it used?

Monoliths are common when a product has one main team, one release train, a cohesive domain, or a need to move quickly before the boundaries are fully understood.

Early-stage products

One deployable unit can reduce infrastructure and coordination while the team validates the product.

Internal tools

A single application is often enough when usage, ownership, and change patterns are relatively contained.

Business platforms

Modular monoliths can support many capabilities while keeping transactions and operations straightforward.

05 · Example

Example

Imagine an online retailer with one application for browsing products and placing orders.

Customer action

A shopper checks out with three items.

Request — the checkout module validates the cart, reserves inventory, charges payment, and creates the order.

Response — the application returns an order confirmation to the browser.

Product implication

The customer gets one consistent checkout flow and the business can keep the order steps in one transaction.

The trade-off is that a deployment or failure in a neighboring module can affect the whole application, and checkout cannot be scaled completely independently from catalog.

06 · How it connects

How it connects

A monolith can still use APIs, background jobs, queues, caches, load balancers, and external services. The defining boundary is the main application unit, not the absence of other infrastructure.

Browser / mobile clientMonolith APIDatabaseQueue / email worker

For example, the application may save an order synchronously and publish an event for email or analytics to process asynchronously.

07 · Do Not Confuse

Do Not Confuse

Monolith ≠ one file

A monolith can have many packages, modules, teams, and layers inside one deployable application.

Monolith ≠ no boundaries

Good internal interfaces and ownership boundaries still matter; they make future change safer.

Monolith ≠ legacy

A new product can intentionally start as a monolith, and a mature product can remain one successfully.

Monolith ≠ cannot scale

A monolith can scale horizontally by running multiple copies behind a load balancer, although all modules scale together.

Modular monolith ≠ microservices

Both can have clear modules, but microservices are independently deployable and operated processes.

Monolith ≠ shared database only

Sharing a database may happen in several architectures; deployment and runtime boundaries are the key distinction here.

08 · Topic Glossary

Topic Glossary

ENGLISH TERM中文SIMPLE ENGLISH中文小白理解
Monolith单体应用An application whose major features are built and deployed together.主要功能放在一起开发和部署的应用。
Deployable Unit可部署单元The unit that is released to a runtime environment.一次发布到运行环境中的整体。
Module模块A part of an application organized around a responsibility.围绕一项职责组织起来的应用部分。
Modular Monolith模块化单体A monolith with deliberate internal boundaries between modules.虽然一起部署,但内部模块边界清楚的单体应用。
Blast Radius影响范围How much of a system can be affected by one failure or change.一次故障或改动可能影响到系统多大范围。
Independent Deployment独立部署Releasing one service without releasing the others.只发布一个服务,不必同时发布其他服务。
09 · What to Remember

What to Remember

A monolith is one main application and deployment unit containing multiple capabilities. It can be a fast, economical choice when the domain and team are still forming.

PM Perspective

Ask what the product actually needs before choosing distributed services: How often must one capability scale independently? How many teams need separate release cadence? What failure isolation is worth the added operational cost? A modular monolith can preserve speed now while creating boundaries that make a later split possible if the evidence supports it.

↑