Architecture 7 min read

C4 Model in Practice: Communicating Architecture to Every Stakeholder

CS
CELESDEV Solutions
Enterprise Architecture Practice

Architecture diagrams fail for one of two reasons: too much detail for the audience, or too little. Simon Brown's C4 model solves this by providing a hierarchy of perspectives — Context, Containers, Components, Code — each calibrated for a different stakeholder and level of concern.

We've standardised on C4 across all our architecture engagements. This article is our field guide: how we use each level, which tools we've settled on, and how we integrate C4 diagrams with the Architecture Decision Records that give them meaning.

The Fundamental Rule
The right diagram for any audience is the one that answers their question at the right level of abstraction. A CFO looking at system investment decisions needs Context. A security engineer reviewing network flows needs Container. A developer onboarding to a service needs Component. One diagram cannot serve all three.

Level 1 — System Context: For Business Stakeholders

The System Context diagram shows one system in the centre, the people who use it, and the external systems it interacts with. Nothing about technology. Nothing about implementation. Just: what is this thing, who uses it, and what does it depend on?

We use Level 1 diagrams in executive briefings, steering committees, and vendor discussions. They're the starting point for every architecture review — before we discuss solutions, we agree on what the system boundary is and who it serves. This sounds obvious but is frequently skipped, leading to architecture conversations that conflate different concerns from the start.

Level 2 — Containers: For Technical Decision-Makers

The Container diagram zooms into the system to show the deployable units: web applications, APIs, databases, message queues, mobile apps, file systems. This is the level where technology choices become visible — "we use PostgreSQL here, a Symfony API here, a Redis cache here."

Level 2 is our most frequently used diagram. It's the right level for Architecture Review Board submissions, security reviews, integration planning, and onboarding senior developers to a new system. It answers "what are the moving parts and how do they communicate?" without requiring knowledge of the internal implementation.

Tooling: Structurizr DSL Over Draw.io

We moved from draw.io to Structurizr DSL for all C4 work two years ago and haven't looked back. The advantages are significant: diagrams are defined as code (version controlled, diffable, reviewable), the model is single-source (change a container once and all diagrams that reference it update), and the output is consistent without manual alignment work.

Structurizr DSL — Container Exampleworkspace { model { user = person "Market Manager" cms = softwareSystem "CMS Platform" { api = container "Content API" "Symfony/API Platform" "PHP" db = container "Content Store" "PostgreSQL 16" "Database" cdn = container "CDN Cache" "CloudFront" "CDN" } } views { container cms "Containers" { include * autoLayout } } }

Integrating C4 with Architecture Decision Records

A diagram without context is decoration. We link every significant architectural choice visible in a C4 diagram to an ADR that explains why that choice was made. The container diagram for a system becomes an index: every technology label links to the ADR that justifies its selection.

This practice dramatically reduces the "why did we do it this way?" questions that consume senior architect time. The answer is always in the linked ADR — including the alternatives considered and the trade-offs accepted.

Key Takeaways
  • Match diagram level to audience — Context for business, Container for technical decisions
  • Use Structurizr DSL: diagrams as code are version-controlled and consistent
  • Single-model architecture: define elements once, reference in multiple views
  • Link C4 diagrams to ADRs for the "why" behind every significant choice
  • Level 1 and 2 are the highest-value — Level 3/4 are rarely worth maintaining
Related Articles
Architecture
Architecture Decision Records: Making Decisions Explicit and Traceable
Read article →
Architecture
Using MEGA HOPEX for Architecture Governance at a European Bank
Read article →
Architecture
TOGAF ADM in the Real World: What We Keep and What We Skip
Read article →