arch.c4
Это содержимое пока не доступно на вашем языке.
Package arch.c4 · Version 0.1.0
The C4 model expressed as ArchLang types. Gives
you person, software_system, container, and component for the
four C4 abstraction levels, the matching external_* variants, and the
enterprise_boundary / system_boundary / container_boundary
grouping kinds.
For deployment diagrams it adds deployment_node (with region,
cluster, host, device, …) and infrastructure_node
(load_balancer, firewall, dns, cdn, gateway).
Use it to draw C4 context, container, component, and deployment diagrams without leaving ArchLang.
| Type | Extends | Description |
|---|---|---|
person | module | A C4 person — a human user of the software system in scope (actor, role, persona or department) |
external_person | person | A person outside the enterprise in scope — a customer, partner or third party; choose over person when the actor sits beyond the organisation boundary |
software_system | module | A C4 software system — the highest level of abstraction, delivering value to its users; the system in scope, hosting a subspace of containers |
external_software_system | software_system | A software system owned by someone else — a SaaS dependency, legacy platform or another team’s product; choose over software_system when it is outside your team’s control |
container | module | A C4 container — a separately deployable/runnable unit (app, API, database, queue, …) inside a software system |
web_application | container | A server-side web application container — renders pages and handles requests |
single_page_app | container | A single-page application container running in the browser; choose over web_application when rendering happens client-side |
mobile_app | container | A native or hybrid mobile application container |
api | container | An API / service application container — exposes endpoints with no UI of its own |
data_store | container | A data-store container — relational DB, document store, key-value or blob; choose over api when the unit stores data rather than serving logic |
message_bus | container | A message broker / event bus / queue container |
file_system | container | A file system or object-storage bucket container |
serverless_function | container | A serverless-function (FaaS) container — event-triggered, ephemeral compute |
component | module | A C4 component — a grouping of related functionality behind a well-defined interface, running inside its parent container’s process |
enterprise_boundary | module | A C4 enterprise boundary — a dashed grouping of the people and software systems of one organisation |
system_boundary | module | A C4 system boundary — a dashed grouping of the containers of one software system |
container_boundary | module | A C4 container boundary — a dashed grouping of the components of one container |
deployment_node | module | A C4 deployment node — where software runs (cloud, region, cluster, host); nests freely and hosts child nodes and container instances |
cloud_platform | deployment_node | A managed cloud platform / vendor boundary deployment node (AWS, GCP, Azure) |
region | deployment_node | A geographic region / availability-zone deployment node |
cluster | deployment_node | A container-orchestration cluster deployment node (Kubernetes, ECS, Nomad) |
host | deployment_node | A physical or virtual host / server / VM deployment node |
execution_environment | deployment_node | An execution-environment deployment node inside a host — a runtime, JVM, browser or OS process |
device | deployment_node | An end-user device deployment node the software is deployed to (phone, kiosk, IoT) |
infrastructure_node | module | A C4 infrastructure node — supporting network kit that isn’t a container (load balancer, firewall, DNS, CDN, gateway); a leaf node |
load_balancer | infrastructure_node | A load-balancer infrastructure node |
firewall | infrastructure_node | A firewall infrastructure node |
dns | infrastructure_node | A DNS infrastructure node |
cdn | infrastructure_node | A CDN (content delivery network) infrastructure node |
gateway | infrastructure_node | A gateway infrastructure node — API gateway, ingress or reverse proxy |
container_instance | container | A deployed copy of a logical container, placed inside a deployment node and carrying an optional replica count via aspect instances |
See also: package.archspace reference · The standard library.