C4 model
The C4 model, created by Simon Brown around 2011, is a hierarchical way to diagram software architecture using four levels: Context (system and its users/external systems), Container (deployable units — web app, API, database), Component (major modules within a container), and Code (class-level, usually skipped for static diagrams).
C4 is the most-adopted modern architecture-diagramming notation because it solves the actual problem: UML 2 is too detailed for documentation, ad-hoc box-and-arrow diagrams have no shared conventions. C4 picks a small vocabulary — person, software system, container, component — and a strict hierarchy, so an architect can produce a Context diagram for an exec, drill to Containers for an SRE, drill to Components for an engineer, all from one consistent model. Tooling support is excellent: Structurizr (Simon Brown's tool), PlantUML, Mermaid, IcePanel, and Stride's Design module all emit C4 diagrams from a model. The notation pairs naturally with ADRs (the ADR captures the decision; the C4 diagram shows the result).
Related terms
- ADR
An Architecture Decision Record is a short document that captures a single architecture choice — what was decided, why, what alternatives were rejected, and what consequences the team accepts.
- Domain-driven design
Domain-driven design (DDD) is a software-design approach, formalised by Eric Evans in 2003, that places the business domain at the centre of model design.