Dynamic Diagram Example
The Dynamic diagram shows how systems or containers interact at runtime for a specific business scenario. It illustrates the sequence of calls, message flows, and response paths — revealing order of operations and integration touchpoints.
See Example C4 Diagrams for an overview of all diagram types and when to use each.
To use this example in Nodinite, copy the Mermaid markup below and follow the Creating Your First C4 Diagram import walkthrough to create a Diagram Set, import the markup, and bind nodes to your Repository.
When to Use
- Documenting and reviewing a specific business workflow end-to-end
- Troubleshooting integration failures — trace where a message flow breaks
- Communicating runtime behaviour and message ordering to technical teams
- Focuses on one scenario at a time — not a complete system overview
Import and round-trip support: When a
C4Dynamicdiagram is imported, numeric step prefixes in relationship labels (e.g.,1. Submit Order) are parsed and their sequence order is preserved. The Mermaid generator re-emits the labels with the same step numbers — the full numbered sequence survives import, persist, and regenerate without manual correction.No boundaries in authored Dynamic diagrams:
Boundary,Enterprise_Boundary, andContainer_Boundaryshapes must not appear in storedC4Dynamicdiagrams. This rule applies to authored Dynamic diagrams in a Diagram Set. The grouped Log View runtime inspection view is a separate feature and can roll the same runtime path up by System when users switch to Systems mode.
Example: O2C End-to-End Runtime Sequence
This example uses the O2C BPM demo data to show all 7 milestones of the Order-to-Cash flow as a numbered sequence. It exercises:
ContainerQueueas a first-class participant (Planning Event Bus)Rel_Backfor the ERP → Portal order confirmation return (step 3)Person_Extfor the downstream logistics partner- No boundary shapes anywhere in the diagram
| Preview | Mermaid Code |
|---|---|
|
C4Dynamic
title Order-to-Cash (O2C) — End-to-End Runtime Sequence
Person(customer, "Customer")
Container(portal, "Portal", "Customer Web App")
Container(rcv_order, "INT1337-RCV-Order-Incoming", "Integration / JSON")
Container(ent_order, "INT1337-ENT-Order-Entry", "Integration / XML")
Container(erp, "ERP", "Enterprise Resource Planning")
ContainerQueue(planning_bus, "Planning Event Bus", "Azure Service Bus")
Container(pln_scheduled, "INT1337-PLN-Order-Scheduled", "Integration / JSON")
Container(wms, "WMS", "Warehouse Management System")
Container(pkg_packed, "INT1337-PKG-Order-Packed", "Integration / XML")
Container(dlv_delivered, "INT1337-RCV-Order-Delivered", "Integration / PSV")
Container(erp_finance, "ERP-Finance", "Finance Module")
Container(inv_invoiced, "INT1337-INV-Order-Invoiced", "Integration / JSON")
Person_Ext(logistics_partner, "Logistics Partner")
Rel(customer, portal, "1. Submits order", "HTTPS / JSON")
Rel(portal, rcv_order, "2. Drops order file", "JSON / O2C.Order.Received/1.0")
Rel(rcv_order, ent_order, "3. Forwards order to ERP", "XML / O2C.Order.Entry/1.0")
Rel(ent_order, erp, "4. Creates order entry", "ERP API")
Rel_Back(ent_order, rcv_order, "5. Returns booking confirmation", "CSV / O2C.Order.Confirmation/1.0")
Rel(rcv_order, portal, "6. Delivers confirmation to customer", "CSV")
Rel(erp, planning_bus, "7. Publishes production schedule event", "AMQP")
Rel(planning_bus, pln_scheduled, "8. Delivers schedule event (async)", "AMQP")
Rel(pln_scheduled, pkg_packed, "9. Triggers warehouse packing", "XML / O2C.Order.Ready/1.0")
Rel(pkg_packed, wms, "10. Updates WMS state", "WMS API")
Rel(wms, logistics_partner, "11. Hands over parcel for delivery", "EDI")
Rel(logistics_partner, dlv_delivered, "12. Confirms delivery", "PSV / O2C.Order.Delivered/1.0")
Rel(dlv_delivered, inv_invoiced, "13. Triggers invoice generation", "JSON")
Rel(inv_invoiced, erp_finance, "14. Creates invoice record", "JSON / O2C.Order.Invoice/1.0")
|
|
Shape Coverage
This example exercises the following Dynamic diagram shape vocabulary:
| Shape used | Macro | Notes |
|---|---|---|
| Person (internal) | Person |
Customer |
| Person (external) | Person_Ext |
Logistics Partner |
| Container (generic) | Container |
Portal, ERP, WMS, ERP-Finance, integration services |
| Container Queue | ContainerQueue |
Planning Event Bus — first-class runtime participant |
| Forward connector (numbered) | Rel |
All forward steps in the O2C sequence |
| Backward connector | Rel_Back |
Step 5 — ERP returns booking confirmation upstream |
| No boundaries | (intentional) | Boundary, Enterprise_Boundary, Container_Boundary must not appear in authored Dynamic diagrams |
Next Step
See the Deployment Diagram Example to understand where these containers are physically hosted.
Related Topics
- Example C4 Diagrams — Overview of all diagram types
- L2: Container Diagram Example — The containers used in this sequence
- Deployment Diagram Example — Where these containers are hosted
- Inspect Grouped Log Views as Runtime Diagrams — Investigation-first runtime inspection for related events
- What is C4 Diagrams?