C4 model Note#
Abstractions#
Container#
Server-side web application
Client-side web application
Client-side desktop application
Mobile app
Server-side console application
Microservice
Serverless function
Database
Blob or content store
File system
Shell script
etc
Core diagrams#
Level 1: System Context diagram#
Level 2: Container diagram#
Level 3: Component diagram#
Level 4: Code#
Supplementary diagrams#
System Landscape diagram
Dynamic diagram
Deployment diagram
Notation#
Person
Software System
Container
Component
Relationship
Diagram key/legend#
Notation, notation, notation#
Examples#
Big Bank plc (System Landscape, System Context, Container, Component, Dynamic and Deployment)
Financial Risk System (System Context)
Spring PetClinic (System Context, Container, Component, Dynamic and Deployment)
Message bus and microservices (Container and Dynamic)
Widgets Limited (System Landscape, System Context and Dynamic)
Contoso University (System Context, Container, Component and Dynamic)
Frequently asked questions#
What’s the inspiration behind the C4 model?
make it easier for software developers to describe and understand how a software system works
minimise the gap between the software architecture model/description and the source code