A metamodel implementing Simon Brown’s C4 model — a hierarchical approach to software architecture documentation using four levels of abstraction.
| Type | Shape | Colour | Description |
|---|
| Person | rounded | #08427B (dark blue) | A user or actor who interacts with the system |
| Software System | rectangle | #1168BD (blue) | A top-level software system boundary |
| Type | Shape | Colour | Description |
|---|
| Container | rectangle | #438DD5 (medium blue) | An application, data store, or runtime environment within a system |
| Component | rectangle | #85BBF0 (light blue) | A grouping of related functionality within a container |
| Type | Shape | Colour | Description |
|---|
| Deployment Node | rectangle | #999999 (grey) | An infrastructure node (server, container runtime, cloud service) |
| Container Instance | rectangle | #438DD5 | A 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
| Relationship | Line Style | Markers | Description |
|---|
| Uses | dashed | arrow at target | One element uses or calls another |
| Association | solid | none | General connection |
| Deploys | dotted | arrow at target | A 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:
- System Context — Person and Software System elements showing the big picture
- Container — Containers within a Software System
- Component — Components within a Container
- 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.