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. Click 'Place 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.
Example: Order Placement Workflow
| Preview | Mermaid Code |
|---|---|
|
C4Dynamic
title Order Placement - Sequence of Interactions
Person(customer, "Customer")
Container(web_app, "Web Application")
Container(order_api, "Order API")
Container(payment_gateway, "Payment Gateway")
Container(message_bus, "Message Bus")
Container(fulfillment_svc, "Fulfillment Service")
Container(order_db, "Order Database")
Rel(customer, web_app, "1. Click 'Place Order'")
Rel(web_app, order_api, "2. POST /orders with items and payment info")
Rel(order_api, order_db, "3. INSERT Order record (status=pending)")
Rel(order_api, payment_gateway, "4. Charge credit card")
Rel(payment_gateway, order_api, "5. Return success/failure")
Rel(order_api, order_db, "6. UPDATE Order status=paid")
Rel(order_api, message_bus, "7. PUBLISH OrderPlaced event")
Rel(message_bus, fulfillment_svc, "8. Deliver OrderPlaced event")
Rel(fulfillment_svc, order_api, "9. GET /orders/{orderId}")
Rel(fulfillment_svc, order_db, "10. Query OrderItems")
Rel(order_api, web_app, "11. Return order confirmation")
Rel(web_app, customer, "12. Display 'Order Confirmed'")
|
|
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
- What is C4 Diagrams?