Skip to content

C4 Diagram Review Checklist

Use this checklist when creating or reviewing C4 diagrams to ensure quality and consistency.

Completeness

  • [ ] All key software systems relevant to the scope are shown
  • [ ] All significant users/actors are represented
  • [ ] External systems and dependencies are included
  • [ ] No orphaned elements (every element has at least one relationship)
  • [ ] System boundary is clearly defined (Levels 2 and 3)
  • [ ] The diagram has a descriptive title

Clarity

  • [ ] Every element has a meaningful name (not abbreviations or codenames alone)
  • [ ] Every element has a brief description explaining its responsibility
  • [ ] Technology choices are labeled on containers and components
  • [ ] Relationship arrows have verb labels describing the interaction
  • [ ] Communication protocols/technologies are noted on relationships
  • [ ] Text is readable at the intended display size
  • [ ] A legend or key is included (or use LAYOUT_WITH_LEGEND())

Consistency

  • [ ] Element names are consistent across all diagram levels
  • [ ] Technology labels match actual implementation
  • [ ] Color coding follows team conventions (internal vs external)
  • [ ] Arrow direction consistently represents dependency or data flow
  • [ ] Naming conventions are applied uniformly (e.g., "Service" suffix, "DB" suffix)

Audience Appropriateness

  • [ ] Level 1 (Context): Understandable by non-technical stakeholders
  • [ ] Level 2 (Container): Appropriate for technical leads and architects
  • [ ] Level 3 (Component): Appropriate for developers working on the system
  • [ ] Level 4 (Code): Only created when it adds value beyond reading the source
  • [ ] Detail level matches the intended audience -- not too much, not too little

Accuracy

  • [ ] Diagram reflects the current state of the system (or clearly labeled as target/future state)
  • [ ] No stale elements from previous versions of the architecture
  • [ ] Data flows match actual runtime behavior
  • [ ] Deployment boundaries match actual infrastructure

Maintainability

  • [ ] Diagram source is stored in version control (.puml files preferred)
  • [ ] Diagram is generated from code, not manually drawn (when possible)
  • [ ] Last-updated date is noted or version-controlled
  • [ ] Diagram is referenced from relevant documentation (README, wiki, ADR)