El modelo C4 describe la arquitectura de un sistema en cuatro niveles: Contexto, Contenedores, Componentes y Código. Cada nivel responde a una pregunta distinta y tiene distinta audiencia.
| Nivel | Pregunta | Audiencia |
|---|---|---|
| Contexto | ¿Cómo se relaciona el sistema con personas y sistemas externos? | Cualquier interesado |
| Contenedores | ¿Qué aplicaciones y almacenes forman el sistema? | Técnicos y arquitectos |
| Componentes | ¿Qué módulos componen cada contenedor? | Desarrolladores |
| Código | ¿Cómo se organizan las clases? | Desarrolladores del componente |
Los tres primeros son los más usados; el nivel de código es esencialmente el diagrama de clases del tema anterior.
El nivel de contexto no entra en detalles internos: solo muestra el sistema, sus usuarios y los sistemas externos con los que habla.
Aquí aparecen las tecnologías y los protocolos. Para el monolito por capas que se construye en 1.º, el diagrama de contenedores muestra aplicación, API y base de datos.
El nivel de componentes muestra la organización interna de un contenedor, por ejemplo las capas del monolito.
| Situación | Diagrama |
|---|---|
| Explicar el sistema a alguien nuevo | Contexto |
| Decidir tecnologías o despliegue | Contenedores |
| Planificar el código de un módulo | Componentes |
| Diseñar o revisar clases | Código (diagrama de clases) |