Generate from Integration Landscape
Generate from Integration Landscape creates a complete, lossless C4 Architecture Diagram Set directly from your Integration Landscape data — in one operation, without writing a single line of Mermaid markup.
Every generated diagram is bound to real Repository entities by ID. Systems, Services, and Integrations all appear at their correct C4 zoom level. Re-running the generator on the same Diagram Set appends or refreshes only what changed, without disturbing manually authored content.
✅ Full-stack C4 output from a single action — L0, Dynamic, L2 per System, and L3 per Service
✅ Lossless — Integration entity identity is preserved, not dropped
✅ No Mermaid required — repository IDs are used directly; the import wizard is not involved
✅ Append-safe — consecutive runs update what exists and append what is new
✅ Sync prompt — after generation you are asked whether to run Sync Diagram Links across the set
Why This Exists
The Import wizard is designed for human-authored markup — you paste Mermaid text, and the wizard resolves element names against your Repository. That pipeline is text-first and produces one diagram per import.
The Integration Landscape is data-first. Every entity is already identified by a Repository ID. Routing IL data through the Mermaid import wizard produces one incomplete diagram, loses Integration identity, and requires a non-standard resolver to handle the mismatch between the way IL groups entities (by System) and the way Import resolves boundaries (by Domain).
The dedicated generator solves this cleanly:
| Import Wizard | Generate from IL | |
|---|---|---|
| Source | Mermaid / PlantUML / Structurizr text | Repository entity IDs |
| Entity matching | Name-based resolver | Pre-resolved — no matching needed |
| Boundary binds to | Domain | System |
| Output | 1 diagram per run | Full diagram set in one transaction |
| Integration identity | Only if present in markup | Always preserved |
| Consecutive runs | Manual re-import | Append/update with stable identity |
What Gets Generated
A single generation run takes one or more Integrations as input, targets a Diagram Set, and produces:
| # | Diagram | Level | Scope | Content |
|---|---|---|---|---|
| 1 | System Landscape | L0 | All touched Systems | One System node per touched System; relationships aggregated to System-to-System flows |
| 2 | Dynamic | — | All selected Integrations | One runtime step per Integration; each step bound to the Integration ID |
| N | Container | L2 | One per touched System | Services as Containers inside a System boundary; container-to-container connectors |
| M | Component | L3 | One per touched Service | Integrations owned by that Service as Components |
N equals the number of distinct Systems touched by the selected Integrations.
M equals the number of distinct Services touched by the selected Integrations.
Input --> Generator
Generator --> L0
Generator --> DYN
Generator --> L2
Generator --> L3
L0 --> Set
DYN --> Set
L2 --> Set
L3 --> Set
Set --> Sync
style Generator fill:#87CEEB
style Set fill:#FFD700
style Sync fill:#90EE90
The generator writes all diagrams into one Diagram Set in a single transaction. After the transaction commits, you are asked whether to run Sync Diagram Links on the full set.
Entity-to-Diagram Mapping
The complete mapping of Repository entities to C4 concepts across all generated diagram levels:
| Repository entity | C4 element | Generated level | Bound by |
|---|---|---|---|
| System | System node | L0 | System ID |
| Service | Container node | L2 | Service ID |
| Integration | Component node | L3 | Integration ID |
| Integration | Runtime step | Dynamic | Integration ID |
Integration appears in both L3 and Dynamic. These are complementary views:
- L3 is the structural view — what components are inside a Service container
- Dynamic is the runtime view — how those components interact in a specific flow
Diagram Scope Rules
L0 System Landscape
The L0 is the widest view. It shows only Systems and the directional flows between them.
- One
System(...)node per distinct System touched by the selected Integrations - Connectors aggregated: one flow line between two Systems regardless of how many Integrations run between them
- No Services and no Integrations appear at this zoom level
- Emitted Mermaid type:
C4Context
Dynamic Diagram
The Dynamic diagram shows the runtime interaction sequence.
- One step per selected Integration, in the order they appear in the IL flow set
- Each step label is the Integration display name
- Technology label uses the primary transport type if available
- Each connector record is bound to the Integration ID — preserving full traceability
- No boundaries appear in this diagram
L2 Container Diagrams
One L2 is generated per distinct System.
- Scope: one
System_Boundary(...)wrapping the Services that belong to this System — bound to the System ID - One
Container(...)node per Service inside the boundary — bound to the Service ID - Connectors between Services that have Integrations between them
- Emitted Mermaid type:
C4Container
L3 Component Diagrams
One L3 is generated per distinct Service.
- Scope: one Service — the diagram answers "what runs inside this container?"
- One
Component(...)node per Integration assigned to this Service — bound to the Integration ID - Component shape driven by
C4ComponentKindon the Integration entity - Emitted Mermaid type:
C4Component
Deterministic Integration Ownership in L3
Each Integration appears in exactly one L3 diagram. The assignment rule is deterministic:
- If the Integration has a designated owning Service in the Repository, it appears in that Service's L3
- If ownership is ambiguous but a source/originating Service can be identified, it appears in the source Service's L3
- If neither is determinable, the Integration is assigned to the Service with the lowest Repository ID among the participating Services
The same Integration is never placed in multiple generated L3 diagrams by default. This keeps consecutive run identity stable and avoids duplication.
Entry Points
| Where | How |
|---|---|
| Integration Landscape | Right-click one or more selected Integrations → Generate C4 Diagram Set |
| Diagram Set toolbar | Regenerate from Integration Landscape — available when the set contains at least one IL-generated diagram |
The action requires you to select or create a Diagram Set before generation starts.
Consecutive Runs — Append and Update
The generator supports re-running against the same Diagram Set safely. Generated artifacts carry provenance metadata identifying them as IL-generated and linking them to the source data. On consecutive runs:
| Situation | Behavior |
|---|---|
| First run — no IL-generated diagrams in the set | Full creation — all diagrams created from scratch |
| Consecutive run — same Integration IDs, no structural change | Update existing generated records in place; manual layout positions are preserved |
| Consecutive run — new Integration IDs added | Append only: add new nodes, connectors, and new L2/L3 diagrams for any new Systems/Services |
| Consecutive run — Integration ID no longer in the source data | Generated artifact is marked stale; auto-delete does not happen; manual removal required |
Manual content added to a generated diagram after the first run is never touched by the generator. Only records carrying IL generation provenance are updated or marked.
Post-Generation: Sync Diagram Links
After generation completes and the transaction commits, the generator shows a summary and asks:
Run Sync Diagram Links on this Diagram Set now?
The default answer is Yes.
Running Sync Diagram Links ensures every shared Repository binding between diagrams in the set produces a working drill-through badge. Because the generator creates multiple diagrams in one transaction — and each may share entity bindings with other diagrams already in the set — running Sync guarantees that L0 → L2 → L3 drill-through navigation is fully wired before you open the first diagram.
This is the same Sync Diagram Links operation available as a manual toolbar action on any Diagram Set. The generator trigger is a convenience prompt — not a hidden automatic action.
Relationship to Import
Generate from Integration Landscape and Import are independent pipelines. They operate on different sources and produce different outputs.
Import accepts text. It is the right tool when you have existing C4 markup from another tool or when you want to author diagrams manually in Mermaid.
Generate from IL accepts Repository entities. It is the right tool when you want to automatically project your Integration Landscape into a structured C4 Diagram Set.
The Import wizard boundary resolver matches boundaries to Domains only. It does not match boundaries to Systems. If you import Mermaid markup that was previously exported from an IL-generated diagram, boundaries will not re-resolve to Systems — they will be offered as label-only by default. This is expected and correct for the import path.
Generation Summary
After a successful run the generator displays a creation report. On a first run this looks like:
Generation complete
Created 1 × L0 System Landscape
Created 1 × Dynamic — Order-to-Cash
Created 3 × L2 Container (ERP, Portal, WMS)
Created 4 × L3 Component (IVN-Order, SND-Transfer, RCV-Portal, PKG-Outbound)
9 diagrams in set "Order-to-Cash Architecture"
Run Sync Diagram Links? [ Yes ] No
On a consecutive append run:
Updated 1 × L0 System Landscape (+1 node, +1 connector)
Updated 1 × Dynamic — Order-to-Cash (+1 step)
Created 1 × L2 Container (ERP-Finance) ← new System, appended
Unchanged 2 × L2 Container (Portal, WMS)
Created 1 × L3 Component (INV-Finance) ← new Service, appended
Unchanged 3 × L3 Component (IVN-Order, SND-Transfer, RCV-Portal)
10 diagrams in set "Order-to-Cash Architecture"
Run Sync Diagram Links? [ Yes ] No
Next Steps
- Sync Diagram Links – Rebuild Navigation in C4 Diagram Sets
- Repository Bindings – Link C4 Shapes to Systems and Services
- Architecture Diagrams Overview
- Import – Bring C4 Diagrams from Mermaid, PlantUML, or Structurizr DSL