Migration L2 Container Diagram Example
This migration container diagram is the L2 view of the Migration Journey example set. It zooms in from the L1 Context example and models a realistic phased migration where both integration platforms coexist.
BizTalk continues to process invoices while Azure Integration Services handles new order processing, and a Service Bus Bridge connects the legacy and new integration paths. Copy the C4Container markup below and follow Import Your First C4 Diagram to import it into a C4 Diagram Set; L2 Container nodes bind to Services (or Systems for the shared business core), and each Boundary can bind to a Domain. See C4 Diagrams for the concepts.

The L2 Container diagram for the migration coexistence scenario, with the Shared Business Core, BizTalk, and Azure Integration Services boundaries.
Example Diagram
| Preview | Mermaid Code |
|---|---|
|
C4Container
title Migration Coexistence - Container View
Enterprise_Boundary(migration_enterprise, "Order-to-Cash Migration Coexistence") {
Boundary(shared_core, "Shared Business Core", "Domain") {
Container(portal, "Portal", "Customer Web App", "Unchanged customer-facing order entry")
Container(shared_erp, "ERP", "REST / SOAP API", "Unchanged business core")
Container(shared_erp_finance, "ERP-Finance", "REST / SOAP API", "Unchanged business core")
Container(shared_wms, "Warehouse Management System", "REST API", "Unchanged business core")
}
Boundary(current_state, "BizTalk", "Domain") {
Container(biztalk_order_legacy, "INT1337-RCV-Order-Incoming", "BizTalk Runtime", "Current-state order intake")
Container(biztalk_sync_legacy, "INT1337-PLN-Order-Scheduled", "BizTalk Runtime", "Current-state planning synchronization")
}
Boundary(target_state, "Azure Integration Services", "Domain") {
Container(api_management_new, "API Management", "REST API Gateway", "Front door for migrated APIs")
Container(order_logic_app_new, "INT1337-SND-Confirm-Outgoing", "Logic Apps", "Migrated order confirmation workflow")
Container(invoice_logic_app_new, "INT1337-INV-Order-Invoiced", "Logic Apps", "Migrated invoice workflow")
ContainerQueue(service_bus_bridge, "Service Bus Bridge", "Service Bus", "Bridge between legacy and new integration paths")
Container(function_transform, "Azure Functions - Transformation", "Azure Functions", "Transformation and enrichment")
}
}
Container_Ext(payment_gateway, "Payment Gateway", "External REST API", "Processes customer credit card payments")
ContainerDb_Ext(carrier_tracking, "Carrier Tracking DB", "External Database", "Provides delivery confirmation status")
ContainerQueue_Ext(edi_gateway, "EDI Gateway", "External Message Queue", "B2B document exchange")
Rel(portal, api_management_new, "Order API request/response", "HTTPS / JSON")
Rel(api_management_new, order_logic_app_new, "Order API request/response", "HTTPS")
Rel(order_logic_app_new, service_bus_bridge, "Publish migrated order event", "AMQP")
Rel(service_bus_bridge, function_transform, "Consume and enrich", "AMQP")
Rel(function_transform, shared_erp, "Write transformed order", "REST / SOAP")
Rel(order_logic_app_new, shared_wms, "Create shipment", "REST")
Rel(invoice_logic_app_new, shared_erp_finance, "Post invoice", "REST")
Rel(biztalk_order_legacy, shared_erp, "Legacy order and invoice integration", "SOAP")
Rel(biztalk_order_legacy, shared_erp_finance, "Legacy invoice posting", "SOAP / SQL")
Rel(biztalk_sync_legacy, shared_erp_finance, "Legacy planning sync", "REST")
Rel(order_logic_app_new, payment_gateway, "Migrated payment authorization", "REST")
Rel(biztalk_order_legacy, carrier_tracking, "Legacy delivery status read", "REST")
Rel(order_logic_app_new, carrier_tracking, "Target delivery status read", "REST")
BiRel(biztalk_order_legacy, edi_gateway, "Legacy B2B document exchange", "AS2")
BiRel(invoice_logic_app_new, edi_gateway, "Target B2B document exchange", "AS2")
Rel(service_bus_bridge, biztalk_order_legacy, "Coexistence event bridge", "AMQP / Adapter")
|
|
Coexistence Focus
- Legacy workload retained: BizTalk Invoice Processing
- New workload migrated: Azure Logic Apps - Order Processing
- Shared systems: Portal, ERP, ERP-Finance, and Warehouse Management System
Import-Friendly Notes
ContainerQueueis used for bridge messaging to improve queue/bus classification.- Shared-system names are consistent with BizTalk and Azure sets for matching reuse.