StructurizrStructurizr Express

Structurizr Express lets you create a single System Landscape, System Context, Container, Component or Dynamic diagram from the C4 model, by defining it as JSON/YAML.

Please note...

Structurizr Express will be discontinued and unavailable after 30th June 2020. We recommend converting your Express definition to Structurizr's workspace format (e.g. using the button on the top right of this window or the express-to-workspace tool), which can then be imported into a workspace and modified with the browser-based workspace editor (demo).

System Landscape diagram

The C4 model provides a static view of a single software system but, in the real-world, software systems never live in isolation. For this reason, and particularly if you are responsible for a collection of software systems, it's often useful to understand how all of these software systems fit together within the bounds of an enterprise. To do this, simply add another diagram that sits "on top" of the C4 diagrams, to show the system landscape from an IT perspective.

Essentially this is a high-level map of the software systems at the enterprise level, with a C4 drill-down for each software system of interest. From a practical perspective, a system landscape diagram is really just a system context diagram without a specific focus on a particular software system.

Read more about the C4 model at or look at an example System Landscape diagram.

System Landscape diagram

System Context diagram

A System Context diagram is a good starting point for diagramming and documenting a software system, allowing you to step back and see the big picture. Draw a diagram showing your system as a box in the centre, surrounded by its users and the other systems that it interacts with.

Detail isn't important here as this is your zoomed out view showing a big picture of the system landscape. The focus should be on people (actors, roles, personas, etc) and software systems rather than technologies, protocols and other low-level details. It's the sort of diagram that you could show to non-technical people.

Read more about the C4 model at or look at an example System Context diagram.

System context diagram

Container diagram

Once you understand how your system fits in to the overall IT environment, a really useful next step is to zoom-in to the system boundary with a Container diagram. A "container" is something like a web application, desktop application, mobile app, database, file system, etc. Essentially, a container is a separately deployable unit that executes code or stores data.

The Container diagram shows the high-level shape of the software architecture and how responsibilities are distributed across it. It also shows the major technology choices and how the containers communicate with one another. It's a simple, high-level technology focussed diagram that is useful for software developers and support/operations staff alike.

Read more about the C4 model at or look at an example Container diagram.

Container diagram

Component diagram

Following on from a Container diagram, next you can zoom in and decompose each container further to identify the major structural building blocks and their interactions.

The Component diagram shows how a container is made up of a number of "components", what each of those components are, their responsibilities and the technology/implementation details.

Read more about the C4 model at or look at an example Component diagram.

Component diagram

Dynamic diagram

A simple dynamic diagram can be useful when you want to show how elements in a static model collaborate at runtime to implement a user story, use case, feature, etc. This dynamic diagram is based upon a UML communication diagram (previously known as a "UML collaboration diagram"). It is similar to a UML sequence diagram although it allows a free-form arrangement of diagram elements with numbered interactions to indicate ordering.

Read more about the C4 model at or look at an example Dynamic diagram.

Dynamic diagram

Add a new element
Add a new relationship
Add a new style