Objects and Links
Objects and Links

Define objects, their types and attributes, and the links that connect them.

Objects are the nodes of your architecture; links are the relationships between them. Together they form the graph that every diagram and view is built from.

Objects

An object has a title, a type, and optional metadata:

title: Tenant Service
type: microservice:service
description: Owns tenant records and provisioning state.
tech:
  - typescript
  - postgresql
status: active
objects:
  tenant_repo: null
  provisioner: null
KeyPurpose
titleDisplay name
typeObject type from the schema; use base:subtype when a subtype applies (e.g. container:database)
descriptionShort explanation
attributesFree-form metadata map
Schema fieldsType-defined fields such as status, tech, owner
objectsChild object slugs
attachmentsDeclared files on the object (handbook, OpenAPI, ERD, SQL, …)

Types come from the schema

Available type values depend on the model’s objects_schema. The C4 schema includes actor, organization, product, system, container, component, microservice, external, and more. Schema subtypes (for example container:database or microservice:service) are valid object types.

A link points from one object to another. Use the short form or the extended form:

links:
  - api_service

Reference styles

StyleExample
Siblingapi_service
Parent scopeproduct.application
Absoluteexample-saas.product.application.api_service

References must resolve

If a link target cannot be resolved, validation reports an unknown-reference. Keep targets accurate as you rename objects.

Tags

Tags are group:value strings drawn from a global taxonomy. Use them to classify objects and links for filtering in Explore:

tags:
  - domain:billing
  - env:prod

Model relationships explicitly with links rather than implying them in prose. Links are what power navigation, filtering, and workflow diagrams.

Last updated on