- 3 minutes to read
Migration L2 Container Diagram Example
This container diagram models a realistic phased migration where both integration platforms coexist.
BizTalk continues to process invoices while Azure Integration Services handles new order processing.
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 Server", "Domain") {
Container(biztalk_order_legacy, "INT1337-RCV-Order-Incoming (BizTalk)", "BizTalk Runtime", "Current-state order intake")
Container(biztalk_sync_legacy, "INT1337-PLN-Order-Scheduled (BizTalk)", "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 App)", "Logic Apps", "Migrated order confirmation workflow")
Container(invoice_logic_app_new, "INT1337-INV-Order-Invoiced (Logic App)", "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.