NEW
An application structured and deployed as a single unit with shared codebase, runtime, and data model.
DESCRIPTION
A monolith encapsulates all application functions into one deployable unit. It simplifies development and operations with shared code and unified deployment, often improving performance and consistency initially. However, it can become hard to scale organizationally, slower to release, and challenging to modularize as complexity grows. Teams often refactor monoliths into microservices to enable independent scaling and deployment. Monoliths can be well-structured using modular boundaries and clear interfaces to mitigate drawbacks.
ALTERNATIVE DEFINITIONS
Martin Fowler
A monolith is an architectural style where the software is deployed as a single unit.
Stresses deployment unit over code structure, advocating simplicity first.
Wikipedia
A monolithic application describes a software program that has most or all of its functionality within a single process.
Emphasizes single process as the defining feature.
NGINX
In a monolithic architecture, all processes are tightly coupled and run as a single service.
Focuses on tight coupling and single service runtime.
RELATED TERMS
Service-Oriented Architecture API Gateway DevOps Scalability Deploying Refactoring Domain-Driven Design Encapsulation Distributed Systems
COMPETING TERMS
KNOWLEDGE AREAS
Software Engineering Data Architecture Platform & Tooling
TARGET AUDIENCE
Software Architect Software Developer DevOps Engineer Solution Architect IT Manager
EXTERNAL SOURCES
- Wikipedia - Monolithic application
- Martin Fowler - Contrast with microservices architecture
- Red Hat - Vendor overview of monoliths
TOP QUESTIONS
When is a Monolith a good choice?
Early-stage products benefit from simplicity of a monolith. It reduces operational overhead and accelerates delivery until scaling needs demand decomposition.
Category: Opinion
What are common Monolith pitfalls?
Tight coupling, shared database schemas, and lack of modular boundaries make changes risky and slow.
Category: Mistakes
How do you evolve a Monolith to microservices?
Use domain-driven design to carve bounded contexts, establish APIs, and split independently deployable modules incrementally.
Category: Management
Does Monolith mean bad architecture?
No. Well-structured monoliths with clean modularization can be maintainable and performant.
Category: Misunderstanding
How does a Monolith impact deployment?
A single deployment unit simplifies release but forces coordinated rollouts, increasing blast radius of failures.
Category: Requirements
What is a hot topic around Monolith vs Microservices?
Teams debate the tradeoff between operational complexity and developer velocity, with the rise of “modular monoliths.”
Category: Topic
How do data models evolve in a Monolith?
Shared schemas require careful change management, backwards-compatible migrations, and testing to avoid breaking large surfaces.
Category: Management
What risks exist in scaling a Monolith?
Performance bottlenecks and team coordination issues arise as codebase and feature sets grow.
Category: Risk
What’s a striking analogy for a Monolith?
It’s like a single machine with many gears inside: one casing, many functions, but one failure can halt everything.
Category: Example