The C4 Model makes a system legible across several resolution levels, from context down to code. It suits situations where different audiences need to understand the same architecture from different altitudes.
Architecture Mapping tool
C4 Model
Communicates software architecture through context, container, component and code diagrams at useful levels of detail.
Communicates software architecture through context, container, component and code diagrams at useful levels of detail.
Which diagrams let each audience understand the software architecture?
- Participants
- 1-5
- Time
- 1-4 h
The steps are a practical sequence; adapt them to the method’s purpose and available evidence.

Question
Choose system, audience and question
Define one system-of-interest boundary and the understanding question the diagrams must answer.
Context
Draw system context
Show the system as one box with people and external systems; label relationships by purpose and interaction.
Containers
Add container view
Decompose the system into applications, services and data stores; name responsibility and technology when useful.
Detail
Maintain only useful zoom levels
Add component, code, dynamic or deployment diagrams only to resolve a question; label legend and ownership.
Revisit the model when evidence, context or outcomes change. Record what changed and why.
A good fit when
Use it when: Architecture Communication, Onboarding. The group can provide the evidence and authority the method requires.
Ideal for
- Architecture communication
- Onboarding
- Design reviews
Not good for
- Domain discovery
- Strategic market analysis
Outputs

C4 diagram set
System context, containers and further zoom levels when they serve a clear purpose.

Coherent set of C4 views
The artifact records scope, date, participants, source version, and owner, including changed assumptions and the reason for each revision.
C4 views
Fictional worked example
Fictional context diagram for a practice portal: patient uses web app; practice staff use admin interface; portal queries practice management and sends confirmations through email service. Container view below: web frontend, booking API, appointment database. Label the relationship: API reads open slots and requests reservation. No component view unless it answers a concrete question.
System context
Show the system, people and neighbours with relationships.
Patient → practice portal → practice management.
Container
Show applications, services and data stores inside the boundary.
Web app → booking API → appointment database.
Component
Decompose internal components only to resolve a question.
Booking service checks availability and reservation.
Code
Use code level only when detail is useful.
No code diagram without a concrete reader need.
Supporting diagrams
Add dynamic, deployment or landscape when the communication needs it.
Deployment view for operations handover.
The example text is fictional; replace it with sourced project information.
First step
Define one system-of-interest boundary and the understanding question the diagrams must answer.
Good to do first
Deep dive
First the system context is described with people, neighboring systems, and boundaries. Then containers, components, and, if needed, a code view are added as supplements. This keeps the architecture connectable at every level without overloading a single diagram.
The C4 Model works because it shows the same architecture at graduated resolutions, reaching different audiences without diagram overload. Good use keeps the abstraction disciplined at each level and avoids mixing context, container, and detail in one picture. The approach becomes effective when relationships, responsibilities, and interfaces are clear enough per view that understanding questions get resolved faster and wrong assumptions are caught earlier.
Clarify beforehand which view is needed for which conversation so you don't draw everything at once out of habit. A key moment happens where one level no longer suffices and the group deliberately moves to the next. Close with a compact set of maintained views and clear rules on when each one needs updating.
The method guide walks execution through 4 phases, timing, 4 pitfalls, and clear stop criteria.
Open method guideYour perspective
Does this method help with your work?
Your feedback helps shape the next improvements to methodatlas.
Sources and topics
C4 Model: WorksheetPrepare the decision, source evidence and next review.markdown
c4-model-working-template.md
Prepare the decision, source evidence and next review.
C4 Model: Worksheet
Question
To be confirmed
Desired outcome
To be confirmed
Scope
Run the method Time: See catalog planning range; no universal duration.
Complete this worksheet on paper or in your own document during the work.
Preparation for this scope
Method setup
- Materials: Shared visual workspace, source evidence, and an agreed decision question.
- Roles: Architect or lead developer, developers, product/domain representative.
- Advance information: Collect existing data, examples, constraints and relevant stakeholder perspectives.
- Overall time needed: 60–120 min for an initial model; detail and review depend on system scope.
- Setup: Name software system, boundary, audience and question the diagram must answer. Show users and neighboring software systems with named relationships. Decompose the chosen system into applications/data stores/containers and technologies. Zoom into components or code only when the audience needs that level. Check consistent scope, relationship labels, legends and diagram owner.
Prepare for the work steps
Question: Choose system, audience and question
- System boundary, discussion purpose and audience
Context: Draw system context
- Users, neighbouring systems and evidenced relationships
Containers: Add container view
- Context view, deployable software and data stores
Detail: Maintain only useful zoom levels
- Open architecture question, diagram convention and owner
C4 views
System context
Show the system, people and neighbours with relationships.
...
Container
Show applications, services and data stores inside the boundary.
...
Component
Decompose internal components only to resolve a question.
...
Code
Use code level only when detail is useful.
...
Supporting diagrams
Add dynamic, deployment or landscape when the communication needs it.
...
This blank document contains only section prompts.
Question: Choose system, audience and question
Expected artifact: Diagram brief
Diagram brief
Entry:
...
- Can an architecture view answer the question?
Context: Draw system context
Expected artifact: System context diagram
System context diagram
Entry:
...
- Are dependencies and system boundary clear?
Containers: Add container view
Expected artifact: Container diagram
Container diagram
Entry:
...
- Are containers executable or deployable units?
Detail: Maintain only useful zoom levels
Expected artifact: Coherent set of C4 views
Coherent set of C4 views
Entry:
...
- Are terms, direction and detail clear to readers?
Open questions and next steps
...
Method guide: https://methodatlas.meierhoff-systems.de/en/methods/c4-model/run-sheet
Alternatives and neighbors
Fitting alternatives with decision guidance, followed by other related methods.

Instead of C4 Model, when you want to systematically describe an architecture with multiple views for documentation and stakeholders.

Prepares stakeholders, core messages, and artifacts so architecture communication connects deliberately.

Examines how architecture decisions support important quality goals and makes risks and trade-offs visible.

Gathers quality goals, prioritizes risks, and turns them into architecture topics evaluated together.

Uses concrete tasks to show how well an architecture supports use and change.

Bundles problem, goals, stakeholders, and risks into a starting picture that sorts early architecture questions.
Constraints and origin
Profile
- Method form
- Mapping tool
- Participants
- 1-5
- Time
- 1-4 h
- Maturity
- Canonical
- Origin
- Simon Brown


