Skip to content

Comparison

C4 and arc42

These two get compared as if you had to pick one. You do not: arc42 is the shape of the document, C4 is what goes in the picture. Teams that understand that use both and stop arguing.

They answer different questions

arc42 answers "what should the document contain?" — twelve numbered sections, from constraints and quality goals through to risks and glossary. It is a table of contents with opinions, created by Gernot Starke and Peter Hruschka.

C4 answers "what does a box mean?" — four levels of abstraction, created by Simon Brown, with a rule about what you may draw at each one. It says nothing about chapters, decisions or quality attributes.

So "C4 vs arc42" compares a notation with a filing system. The question that matters is not which to adopt but what each one leaves undone when you adopt it alone.

Where they meet

arc42 section 5, the Building Block View, is explicitly hierarchical: whitebox, then the blackboxes inside it, then down a level. That is the same decomposition C4 describes, and the two were designed knowing about each other.

  • arc42 §3 Context and Scope — The C4 System Context diagram, plus the external interfaces in prose.
  • arc42 §5 Building Block View — C4 containers, then components — the levels line up almost exactly.
  • arc42 §6 Runtime View — No C4 equivalent. Sequence diagrams live here, and C4 deliberately does not cover behaviour.
  • arc42 §7 Deployment View — No C4 equivalent either; C4 has a separate deployment diagram that is not one of the four levels.
  • arc42 §1, §2, §9—§12 — Goals, constraints, decisions, quality, risks, glossary. Pure prose, and the reason arc42 exists.

What each one leaves undone

  • C4 alone — You get diagrams nobody argues about and no record of why any of it is that way. The decisions end up in a chat thread and leave with the person who made them.
  • arc42 alone — You get twelve well-named empty sections. The template does not tell you how to draw §5, which is the section people actually open, and without a rule about abstraction it fills with boxes at four levels at once.

The usual failure

An arc42 document started in earnest, sections 1 to 5 filled in, 6 to 12 left as headings, and the whole thing last touched eighteen months ago. The template is not at fault — nothing kept it next to the system it describes.

Using both without the busywork

  1. Take arc42 as the outline, not as a mandate. Twelve sections is the full set, not the minimum; three filled sections beat twelve stubs.
  2. Draw §3 and §5 as C4 — System Context, then containers, then components only where a container is genuinely complicated.
  3. Keep the prose next to the element it describes rather than in a separate chapter, so a rename cannot orphan it.
  4. Treat §9 (decisions) as a running log. One paragraph per decision, written when it is made, is worth more than a chapter written afterwards.

Where the tooling lands

arc42 ships as templates for Word, Markdown, AsciiDoc and Confluence, which puts the prose in one system and the diagrams in another. That split is what rots: the diagram is updated, the paragraph beside it is not, and nobody notices for a year.

A modelling tool that holds the documentation on the element closes the gap from the other side — the C4 structure comes first and the prose hangs off it. Viaduct is built that way: Markdown on the element, sequences on the layer they belong to, and the whole thing exportable as JSON and Markdown if you ever want it back in an arc42 document.

Honest limits

This does not replace arc42. Quality goals, constraints, risks and the glossary have no natural home on a diagram element, and a document is still the right shape for them.

Frequently asked

Is arc42 an alternative to C4?

No. arc42 is a template for the document and C4 is a notation for the diagrams inside it — most obviously inside section 5, the Building Block View. Choosing between them is a category error; the real choice is whether you need the ten sections of prose that arc42 adds.

Can I use C4 inside an arc42 document?

That is the common pairing. Section 3 becomes the System Context diagram, section 5 becomes containers and then components. The arc42 authors assume some notation will fill those sections and do not prescribe which.

What is a lighter alternative to arc42?

The four C4 levels plus a running decision log covers most of what a product team actually rereads. Add arc42 sections as questions come up rather than filling twelve headings up front — an empty section is a promise the document does not keep.

The guide

The rest of the guide

Eight short pages covering the four levels, the notation, the comparisons people ask about, and the tooling decisions that only hurt six months in.

Level 1

The System Context diagram

One box for your system, the people who use it, and the systems it depends on. It is the only architecture diagram that a product manager, a security reviewer and a new engineer can all read on their first day.

Level 2

The Container diagram

The separately deployable pieces inside your system and the technology each one is built with. If a team draws only one architecture diagram, this is the one that earns its keep.

Level 3

The Component diagram

The major building blocks inside one container, what each is responsible for, and how they collaborate. Drawn per container, and only for the containers that are genuinely hard.

Level 4

The Code diagram

Classes, interfaces and their relationships inside a single component. The level almost everybody draws first and almost nobody should maintain by hand.

Comparison

C4 vs UML, ArchiMate and "boxes and lines"

C4 is not competing with UML — it is solving a different problem. Knowing which problem each one solves is what stops an architecture review turning into a notation argument.

Comparison

C4 and arc42

These two get compared as if you had to pick one. You do not: arc42 is the shape of the document, C4 is what goes in the picture. Teams that understand that use both and stop arguing.

Comparison

Structurizr, and when to use something else

Structurizr is the reference implementation of C4, written by the person who invented C4. That is a real argument in its favour and worth saying before any comparison starts.

Practice

C4 with PlantUML: diagrams as text

Text-based diagrams review like code, diff like code and survive like code. Here is how PlantUML fits a C4 model — and where writing everything by hand stops paying.

Comparison

C4 tools compared

Drawing tools, diagrams-as-code and modelling tools solve different halves of the problem. The right choice depends on whether you are producing pictures or maintaining a model — and on whether the model has to stay on your own machine.

See it as a model rather than a picture

Viaduct puts all four levels in one navigable model with the documentation attached. It runs locally in the browser — no account needed.