C4 model elements

Understand C4 model people, software systems, containers, and components, including their hierarchy, syntax, metadata, and examples.

AAL C4 v0.2 — Level-Aware Semantics
Getting Started
Sign in

Use C4 AI Instructions with an external AI assistant, then copy its generated AAL into a new C4 Architecture project. Inspect diagnostics and explicitly Save.

Independent project copies
Use Clone to cloud or Clone to local from a project card’s menu. The copy includes the last saved source and layout; future changes do not sync. Duplicate keeps the same location. Cloning is available only on the Projects page. At three cloud projects, delete one to make room; existing cloud projects can still be saved.

Person

A human actor who interacts with the system. People exist at the top level and appear in context views.

Syntax: person <id> "<name>"
Example
person Customer "Customer"
description
tags
color
Parent: none (top-level)
Can contain: nothing

Software System

A high-level software system or application. Systems contain containers. External systems may carry a System-level semantic type (e.g. crm, identity, coresystem).

Syntax: system <id> "<name>" [external <semanticType>]
Example
system Okta "Okta" external identity
description
technology
owner
tags
external
color
Parent: none (top-level)
Can contain: containers

Container

A deployable unit within a system — an app, API, database, or service. Containers belong to systems and can contain components. May carry a Container-level semantic type.

Syntax: container <id> "<name>" [<semanticType>]
Example
container API "Application API" api
description
technology
owner
tags
color
Parent: system
Can contain: components

Component

A modular unit within a container — a controller, service, repository, adapter, or other architectural responsibility. Components belong to containers. May carry a Component-level semantic type.

Syntax: component <id> "<name>" [<semanticType>]
Example
component PolicyRepository "Policy Repository" repository
description
technology
owner
tags
color
Parent: container
Can contain: nothing