C4 model Note

Abstractions

https://c4model.com/img/abstractions.png

https://c4model.com/img/model.png

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

https://c4model.com/img/bigbankplc-SystemContext.png

Level 2: Container diagram

https://c4model.com/img/bigbankplc-Containers.png

Level 3: Component diagram

https://c4model.com/img/bigbankplc-Components.png

Level 4: Code

https://c4model.com/img/bigbankplc-Classes.png

Supplementary diagrams

  • System Landscape diagram
  • Dynamic diagram
  • Deployment diagram

Notation

  • Person
  • Software System
  • Container
  • Component
  • Relationship

Diagram key/legend

https://c4model.com/img/bigbankplc-Containers-key.png

Examples

Frequently asked questions

What’s the inspiration behind the C4 model?

  1. make it easier for software developers to describe and understand how a software system works
  2. minimise the gap between the software architecture model/description and the source code