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

Notation, notation, notation

A software architecture diagram review checklist

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

Tooling

References