See all posts

Thu Sep 12 2024

Dynamic diagrams in the C4 model

How to craft compelling architecture stories with dynamic diagrams and Flows on IcePanel

Tim

⚡ TL;DR

  • A dynamic diagram simplifies complexity by focusing on specific use cases or user journeys in ordered steps.
  • These diagrams illustrate interactions across the system, allowing viewers to understand data flows to support a use case.
  • IcePanel uses Flows as an alternative to dynamic diagrams, allowing you to show step-by-step interactions on top of existing diagrams.

🤔 What is a dynamic diagram?

A dynamic diagram is a different type of diagram that focuses on a specific use case or user journey. Static diagrams with many objects can be difficult to understand because viewers often don’t know where to start. If viewers don’t know where to start and can’t quickly understand what a diagram is communicating, it’s not a valuable communication artifact.

This is where dynamic diagrams can help. A dynamic diagram contains ordered steps to show specific interactions across the system. This step-by-step flow makes it easier for viewers to follow the diagram and understand how the various parts of the system make something work.

C4 dynamic diagram

C4 dynamic diagram example from C4model.com

If you’re familiar with UML diagrams, they’re based on communication diagrams and are similar to sequence diagrams but much more flexible.

⌚ When should you use a dynamic diagram?

The core C4 diagrams help communicate the shape of your architecture, but it can be difficult for people to understand how something works right away.

Dynamic diagrams are helpful for:

  • Reducing the complexity of a diagram by focusing on a specific group of objects and steps.
  • Onboarding new team members on key use cases since they’re easier to follow.
  • Visualizing data flows across the system to evaluate risk and architecture decisions.

🖌️ How to create a dynamic diagram in IcePanel using Flows

IcePanel doesn’t support dynamic diagrams. However, you can use Flows instead to accomplish the same thing (we think they’re even cooler though 😉).

Like dynamic diagrams, Flows are freeform and let you build a sequence of steps on top of a diagram. You don’t need to create another diagram, which saves you from diagram bloat. Once you create a Flow, you can share it with other people using a share link so they can step through the interactive flow.

To create a Flow in IcePanel:

  1. Navigate to a diagram
  2. Click on the + New flow button on the bottom left of the screen
  3. Add steps. For each step, select a sender, message type, receiver, and description
  4. Add paths. These can be go-to flows, async paths, or alternate paths
  5. Share the Flow by clicking on the share button on the top right

Creating a Flow in IcePanel
Creating a Flow in IcePanel

Adding a step to Flow in IcePanel
Adding a step to a Flow in IcePanel

For a more detailed breakdown of Flows in IcePanel, check out our docs.

🏁 To wrap up

By now, you should understand what the C4 model is, how it compares to other methodologies, the core diagram types, and supplementary diagrams. The C4 model is designed to be lightweight and easy to learn, so you’re now ready to begin documenting your system using the C4 model.

📚 Resources