The C4 architecture model

C4 is a system to describe architecture at different levels of abstraction.

  • The context diagram shows the highest-level view, including how people use a service or system. There may be multiple systems in the diagram, but they’re only represented as monolithic blocks. The focus should be on what the person uses, and how other systems support that primary system (or set of systems). This is the higher level of system architecture.
  • The container diagram shows a particular system in more detail by breaking out the “containers”—applications, databases, and other services—that make up a single system. This is the lower level of system architecture.
  • The component diagram breaks down one of these containers into software components. This is the higher level of application architecture.
  • The code diagram shows a component’s class diagram. This is the lower level of application architecture.

Context Diagram

Context Diagram

DoSomething.org Web Container Diagram

DoSomething.org Web Container Diagram

DoSomething.org Activity Container Diagram

DoSomething.org Activity Container Diagram

DoSomething.org Data Container Diagram

DoSomething.org Data Container Diagram

DoSomething.org Messaging Container Diagram

DoSomething.org Messaging Container Diagram