Skip to content
🤷

Forgive us! These docs are a work in progress. Some pages may be incomplete or describe features that aren't quite finished yet. Farkitect is in early development and we don't recommend using it for real work just yet. Feel free to explore — just be aware that things are still being built.

M2 C4 Model

A metamodel implementing Simon Brown’s C4 model — a hierarchical approach to software architecture documentation using four levels of abstraction.

TypeShapeColourDescription
Personrounded#08427B (dark blue)A user or actor who interacts with the system
Software Systemrectangle#1168BD (blue)A top-level software system boundary
TypeShapeColourDescription
Containerrectangle#438DD5 (medium blue)An application, data store, or runtime environment within a system
Componentrectangle#85BBF0 (light blue)A grouping of related functionality within a container
TypeShapeColourDescription
Deployment Noderectangle#999999 (grey)An infrastructure node (server, container runtime, cloud service)
Container Instancerectangle#438DD5A running instance of a Container deployed to a Deployment Node
  • Scope (enumeration: Internal, External) — on Person and Software System
  • Container Type (enumeration: Web App, API, Database, Message Queue, File System, Other) — on Container
  • Deployment Environment (enumeration: Development, Staging, Production) — on Deployment Node
  • Technology (String) — on Container, Component, and Deployment Node
  • Description (String, multiline) — on all element types
RelationshipLine StyleMarkersDescription
Usesdashedarrow at targetOne element uses or calls another
AssociationsolidnoneGeneral connection
Deploysdottedarrow at targetA Deployment Node hosts a Container Instance
  • Scope — Internal, External
  • Container Type — Web App, API, Database, Message Queue, File System, Other
  • Deployment Environment — Development, Staging, Production

The C4 model defines four levels of diagrams, each zooming into more detail:

  1. System Context — Person and Software System elements showing the big picture
  2. Container — Containers within a Software System
  3. Component — Components within a Container
  4. Code — Typically covered by UML class diagrams rather than C4 notation

In Farkitect, create separate diagrams for each level, using child diagrams to link from overview to detail.