Monolith
Characteristics #
- Deployed as a single unit.
- No Clear Isolation.
- Complex Dependencies which in turn makes it hard to understand and modify.
- Big Bang Style Releases
- Long Cycle Times
- Careful releases
- Scalation is done with multiple copies and uses the database as consistency between them.
Advantages: #
- Easy Cross Module Refactor
- Easier to maitain consistency
- Single Deploy Process
- Single thing to monitor
- Simple Scalability Model
Disadvantages: #
- Limited by the maximum size of a single physical machine.
- Only scales as the database allows.
- Components are scaled as a group.
- Deep coupling.
- Long Dev Cycle.
- Lack of reliability given that one failure may impact the whole monolith.
Tearing it up #
Introduce domain boundaries within the application itself (e.g., libraries). This falls within Service Oriented Architecture (SOA).