Перейти к содержимому

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.

TypeExtendsDescription
personmoduleA C4 person — a human user of the software system in scope (actor, role, persona or department)
external_personpersonA person outside the enterprise in scope — a customer, partner or third party; choose over person when the actor sits beyond the organisation boundary
software_systemmoduleA C4 software system — the highest level of abstraction, delivering value to its users; the system in scope, hosting a subspace of containers
external_software_systemsoftware_systemA 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
containermoduleA C4 container — a separately deployable/runnable unit (app, API, database, queue, …) inside a software system
web_applicationcontainerA server-side web application container — renders pages and handles requests
single_page_appcontainerA single-page application container running in the browser; choose over web_application when rendering happens client-side
mobile_appcontainerA native or hybrid mobile application container
apicontainerAn API / service application container — exposes endpoints with no UI of its own
data_storecontainerA data-store container — relational DB, document store, key-value or blob; choose over api when the unit stores data rather than serving logic
message_buscontainerA message broker / event bus / queue container
file_systemcontainerA file system or object-storage bucket container
serverless_functioncontainerA serverless-function (FaaS) container — event-triggered, ephemeral compute
componentmoduleA C4 component — a grouping of related functionality behind a well-defined interface, running inside its parent container’s process
enterprise_boundarymoduleA C4 enterprise boundary — a dashed grouping of the people and software systems of one organisation
system_boundarymoduleA C4 system boundary — a dashed grouping of the containers of one software system
container_boundarymoduleA C4 container boundary — a dashed grouping of the components of one container
deployment_nodemoduleA C4 deployment node — where software runs (cloud, region, cluster, host); nests freely and hosts child nodes and container instances
cloud_platformdeployment_nodeA managed cloud platform / vendor boundary deployment node (AWS, GCP, Azure)
regiondeployment_nodeA geographic region / availability-zone deployment node
clusterdeployment_nodeA container-orchestration cluster deployment node (Kubernetes, ECS, Nomad)
hostdeployment_nodeA physical or virtual host / server / VM deployment node
execution_environmentdeployment_nodeAn execution-environment deployment node inside a host — a runtime, JVM, browser or OS process
devicedeployment_nodeAn end-user device deployment node the software is deployed to (phone, kiosk, IoT)
infrastructure_nodemoduleA C4 infrastructure node — supporting network kit that isn’t a container (load balancer, firewall, DNS, CDN, gateway); a leaf node
load_balancerinfrastructure_nodeA load-balancer infrastructure node
firewallinfrastructure_nodeA firewall infrastructure node
dnsinfrastructure_nodeA DNS infrastructure node
cdninfrastructure_nodeA CDN (content delivery network) infrastructure node
gatewayinfrastructure_nodeA gateway infrastructure node — API gateway, ingress or reverse proxy
container_instancecontainerA 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.