The C4 model is a hierarchical framework for visualizing software architecture through four levels of abstraction: System Context, Container, Component, and Code diagrams. Developed by Simon Brown, it emerged from the need for clearer, more accessible alternatives to complex methods like UML, particularly in agile environments. The model emphasizes simplicity and effective communication, recommending a focus on the higher levels - System Context and Container diagrams - as they change less frequently and provide immediate value, while lower levels are optional and often too volatile to maintain.
The model supports traceability between code and system boundaries and encourages including technology choices (e.g., Java, MySQL) to make diagrams more realistic and foster alignment between architects and developers. Diagrams can be created manually or with tools, and collaborative creation is favored to build shared understanding across teams. While best suited for bespoke enterprise applications, it has limitations in embedded systems, integration-heavy platforms, and low-code environments. Despite its flexibility and lack of enforced notation, the C4 model provides a shared vocabulary that helps teams document, discuss, and evolve their architectures.
Since its development around 2011, with expansions in the following years, the C4 model has remained largely unchanged since 2017 - 2018, with no plans for a major revision. Its ongoing value lies in its accessibility and practicality - teams are encouraged to start small, beginning with a simple context diagram, and adopt the model incrementally. It is also used beyond technical teams, supporting enterprise architecture, operations, security, and product management by enabling consistent visualization of system landscapes and integration points.