The C4 model aims to provide a common set of abstractions, rather than a common notation, for modelling systems. It acknowledges that we may use multiple diagrams to represent different perspectives of the same system. It promotes "diagrams as maps".


  • A software system is made up of one or more containers.
  • Each container comprises one or more *components.
  • Context
  • Deployment


The C4 models considers four levels of views, in ascending order of detail:

System ContextA software systemSoftware systems, and people.
ContainerA software systemSoftware systems, people, and containers within the software system
ComponentA containerSoftware systems, people, containers within the parent system of the container, and components within the container.
CodeA componentCode elements (classes, interfaces) used in the component's implementation.