Show in graph

Software → Software Architecture

C4 Model

A hierarchical software-architecture notation using system context, container, component, and code views.

Motivation

A hierarchical software-architecture notation using system context, container, component, and code views.

Where it fits

This concept provides a shared vocabulary for designing, documenting, measuring, or operating software systems.

Mental model

Treat it as a structured tool: define the question being answered, use consistent terminology, and connect the result to decisions and follow-up work.

Subconcepts

System Context Diagram

Shows the system, its users, and external systems at the broadest scope.

Container Diagram

Shows deployable applications, services, databases, and their interactions.

Component Diagram

Shows major components inside a container and their responsibilities.

Code Diagram

Shows implementation-level structure when that detail is useful.

Practical use

Use the least detailed view that answers the audience’s question, and keep names consistent across levels.

Common mistakes

  • Using ambiguous definitions or units.
  • Collecting or documenting information without connecting it to a decision.
  • Failing to keep the artifact or measurement current as the system changes.

See the linked concepts in the knowledge graph for prerequisites and adjacent practices.