BizTalk L2 Container Diagram Example
This BizTalk container diagram is the L2 view of the BizTalk example set. It zooms into BizTalk Server from the L1 Context example and highlights the common runtime building blocks and message flows.
The goal is architectural clarity: how Receive Locations, Orchestrations, Send Ports, Rules, and databases collaborate. 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 to Systems for platforms such as the Portal), and each Boundary can bind to a Domain. See C4 Diagrams for the concepts.

The L2 Container diagram after importing the Mermaid markup on this page, grouped into entry, processing, and persistence boundaries.
Example Diagram
| Preview | Mermaid Code |
|---|---|
|
C4Container
title BizTalk Runtime - Container View
Person_Ext(customer_user, "Customer", "Submits orders and receives status")
Person_Ext(supplier_user, "Supplier", "Sends invoice and product feed")
Enterprise_Boundary(bt_enterprise, "BizTalk Integration Platform") {
Boundary(bt_entry, "Entry and Receive", "Domain") {
Container(portal, "Portal", "Customer Web App", "Customer-facing order capture and confirmation")
Container(biztalk_receive, "INT1337-RCV-Order-Incoming", "FILE / FTP / SFTP / SOAP / REST", "Ingress adapters and receive pipelines")
}
Boundary(bt_processing, "Process and Transform", "Domain") {
Container(biztalk_orch, "BizTalk Orchestrations", "XLANG/s", "Stateful process orchestration")
Container(biztalk_map, "BizTalk Maps", "XSLT", "Canonical message transformation")
Container(biztalk_rules, "Business Rules Engine", "BRE", "Routing and policy decisions")
Container(biztalk_send, "INT1337-SND-Confirm-Outgoing", "SOAP / REST / SQL / FILE", "Outbound transport adapters")
Container(pln_scheduled, "INT1337-PLN-Order-Scheduled", "Integration / JSON", "Publishes production schedule confirmation")
Container(pkg_packed, "INT1337-PKG-Order-Packed", "Integration / XML", "Confirms order packed for transport")
Container(dlv_delivered, "INT1337-RCV-Order-Delivered", "Integration / PSV", "Captures delivery confirmation")
Container(inv_invoiced, "INT1337-INV-Order-Invoiced", "Integration / JSON", "Issues final invoice")
}
Boundary(bt_persistence, "Messaging and Persistence", "Domain") {
ContainerDb(biztalk_messagebox, "BizTalk MessageBox", "SQL Server", "Store, publish, and dispatch messages")
ContainerDb(biztalk_tracking, "BizTalk Tracking Database", "SQL Server", "Operational and business tracking")
ContainerDb(finance_sql, "ERP-Finance SQL Database", "SQL Server", "Invoice persistence")
ContainerQueue(planning_bus, "Planning Event Bus", "Azure Service Bus", "Schedule event queue")
Container(file_drop, "Partner File Share", "SMB / FILE", "Legacy batch exchange")
}
}
Container_Ext(erp, "ERP", "SOAP API", "Order and inventory domain")
Container_Ext(erp_finance, "ERP-Finance", "SOAP API", "Invoice and payment domain")
Container_Ext(wms, "Warehouse Management System", "FILE / REST", "Fulfillment domain")
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(customer_user, portal, "Place order", "HTTPS / JSON")
Rel(portal, biztalk_receive, "Submit order", "REST")
Rel(supplier_user, biztalk_receive, "Invoice and product files", "SFTP")
Rel(biztalk_receive, biztalk_messagebox, "Publish inbound message", "SQL")
Rel(biztalk_messagebox, biztalk_orch, "Dispatch orchestration", "SQL")
Rel(biztalk_orch, biztalk_map, "Request canonical transform", "XSLT")
Rel(biztalk_orch, biztalk_rules, "Evaluate policy", "BRE")
Rel(biztalk_orch, biztalk_send, "Send transformed message", "In-process")
Rel(biztalk_send, erp, "Order create/update", "SOAP")
Rel(erp, planning_bus, "Publish schedule event", "AMQP")
Rel(planning_bus, pln_scheduled, "Deliver schedule event", "AMQP")
Rel(pln_scheduled, pkg_packed, "Trigger packing", "XML")
Rel(pkg_packed, wms, "Update WMS", "REST")
Rel(wms, dlv_delivered, "Confirm delivery", "PSV")
Rel(dlv_delivered, inv_invoiced, "Trigger invoicing", "JSON")
Rel(inv_invoiced, erp_finance, "Create invoice", "SOAP / SQL")
Rel(biztalk_send, payment_gateway, "Process payment", "REST")
Rel(biztalk_orch, biztalk_tracking, "Write milestones", "SQL")
Rel(biztalk_send, finance_sql, "Persist invoice payload", "SQL")
Rel(biztalk_send, file_drop, "Drop outbound file", "FILE")
Rel(dlv_delivered, carrier_tracking, "Read delivery status", "REST")
BiRel(biztalk_send, edi_gateway, "Exchange invoice and order documents", "AS2")
|
|
Component Type Highlights
- Integration runtime components: Receive Locations, Orchestrations, Send Ports
- Data components: MessageBox Database, Tracking Database, SQL Server
- File integration component: File Share
Import-Friendly Notes
ContainerDbis used for SQL-backed stores so import can suggest Database-oriented container types.- Integration technologies are explicit (for example
XSLT,BRE,SOAP,REST,SFTP) to improve classification hints.