C4 Model

A simple and clear model for documenting/visualizing Software Architecture.

It has 4 levels of detailed diagrams.

Drawing

Levels

Contextarrow-up-right (Software System)

It is the highest level of abstraction and describes something that delivers value to its users.

This includes the software system being modelled, and any other depended softwares.

triangle-exclamation

Diagram exemplearrow-up-right.

Represents an application or data store. (It is a Deployable Unit)

A container is something that needs to be running in order for overall software systems to work.

circle-check

Diagram examplearrow-up-right.

It is a grouping of related functionalities encapsulated behind a well defined interface.

All the Components inside a container execute in the same process space.

circle-check

Diagram examplearrow-up-right.

These are one or more elements constructed with the basic building blocks of the used programming language, (like class, interface, enums, function, object, etc).

Diagram examplearrow-up-right.

It is a library to create C4 Model diagrams through code.

circle-info

A VSCode plugin named PlantUML is also available to run PlantUML.

triangle-exclamation

Creating a Context

Then execute in VSCode this command PlantUML: Preview Current Diagram.

Creating Containers

Last updated