- 3 minutes to read

BizTalk L3 Component Diagram Example

This BizTalk component diagram is the L3 view of the BizTalk example set. It zooms into the runtime from the L2 Container example and models realistic BizTalk artifacts in layered responsibilities.

The layers show how messages move from inbound receive ports through orchestration and mapping to outbound send ports. Copy the C4Component markup below and follow Import Your First C4 Diagram to import it into a C4 Diagram Set; L3 Component nodes bind to Integrations and Container nodes to Services in your Repository Model. See C4 Diagrams for the concepts.

BizTalk L3 Component diagram imported into Nodinite
The L3 Component diagram after importing the Mermaid markup on this page, with receive, process, transform, and delivery layers.

Example Diagram

Preview Mermaid Code
C4Component title BizTalk Artifacts - Component View Container_Boundary(receive_layer, "Receive Layer") { Container(order_receive_port, "INT1337-RCV-Order-Incoming", "Receive Port", "HTTP/SOAP order intake") Component(invoice_receive_port, "Supplier Invoice Receive Port", "Receive Port", "SFTP and FILE invoice intake") Component(customer_sync_receive_port, "Customer Sync Receive Port", "Receive Port", "Master data intake") } Container_Boundary(process_layer, "Process Layer") { Component(order_orchestration, "Order Processing Orchestration", "Orchestration", "Coordinates validation, transform, and delivery") Component(invoice_orchestration, "Invoice Processing Orchestration", "Orchestration", "Coordinates invoice approvals and posting") Component(customer_sync_orchestration, "Customer Synchronization Orchestration", "Orchestration", "Coordinates CRM and ERP synchronization") Component(bre_policy, "Routing Policy", "Business Rules", "Evaluates route and policy decisions") } Container_Boundary(transform_layer, "Transform Layer") { Component(order_canonical_map, "Order Canonical Mapping", "Map", "Source-to-canonical and canonical-to-target") Component(invoice_canonical_map, "Invoice Canonical Mapping", "Map", "Supplier-to-canonical and canonical-to-target") Component(customer_canonical_map, "Customer Canonical Mapping", "Map", "Master data canonicalization") } Container_Boundary(delivery_layer, "Delivery Layer") { Container(confirm_send_port, "INT1337-SND-Confirm-Outgoing", "Send Port", "Publish customer confirmation") Container(schedule_publish_port, "INT1337-PLN-Order-Scheduled", "Send Port", "Publish production schedule confirmation") Container(invoice_publish_port, "INT1337-INV-Order-Invoiced", "Send Port", "Publish invoice event") } ComponentDb(tracking_store, "BizTalk Tracking Store", "SQL Server", "Technical and business tracking") Rel(order_receive_port, order_orchestration, "Trigger", "Pipeline") Rel(invoice_receive_port, invoice_orchestration, "Trigger", "Pipeline") Rel(customer_sync_receive_port, customer_sync_orchestration, "Trigger", "Pipeline") Rel(order_orchestration, bre_policy, "Evaluate policy", "BRE") Rel(order_orchestration, order_canonical_map, "Transform", "XSLT") Rel(invoice_orchestration, invoice_canonical_map, "Transform", "XSLT") Rel(customer_sync_orchestration, customer_canonical_map, "Transform", "XSLT") Rel(order_canonical_map, confirm_send_port, "Deliver", "SOAP / REST") Rel(invoice_canonical_map, invoice_publish_port, "Deliver", "SOAP") Rel(customer_canonical_map, schedule_publish_port, "Deliver", "REST") Rel(order_canonical_map, schedule_publish_port, "Deliver", "FILE") Rel(order_orchestration, tracking_store, "Track", "SQL") Rel(invoice_orchestration, tracking_store, "Track", "SQL") Rel(customer_sync_orchestration, tracking_store, "Track", "SQL")
C4Component
    title BizTalk Artifacts - Component View
    Container_Boundary(receive_layer, "Receive Layer") {
        Container(order_receive_port, "INT1337-RCV-Order-Incoming", "Receive Port", "HTTP/SOAP order intake")
        Component(invoice_receive_port, "Supplier Invoice Receive Port", "Receive Port", "SFTP and FILE invoice intake")
        Component(customer_sync_receive_port, "Customer Sync Receive Port", "Receive Port", "Master data intake")
    }
    Container_Boundary(process_layer, "Process Layer") {
        Component(order_orchestration, "Order Processing Orchestration", "Orchestration", "Coordinates validation, transform, and delivery")
        Component(invoice_orchestration, "Invoice Processing Orchestration", "Orchestration", "Coordinates invoice approvals and posting")
        Component(customer_sync_orchestration, "Customer Synchronization Orchestration", "Orchestration", "Coordinates CRM and ERP synchronization")
        Component(bre_policy, "Routing Policy", "Business Rules", "Evaluates route and policy decisions")
    }
    Container_Boundary(transform_layer, "Transform Layer") {
        Component(order_canonical_map, "Order Canonical Mapping", "Map", "Source-to-canonical and canonical-to-target")
        Component(invoice_canonical_map, "Invoice Canonical Mapping", "Map", "Supplier-to-canonical and canonical-to-target")
        Component(customer_canonical_map, "Customer Canonical Mapping", "Map", "Master data canonicalization")
    }
    Container_Boundary(delivery_layer, "Delivery Layer") {
        Container(confirm_send_port, "INT1337-SND-Confirm-Outgoing", "Send Port", "Publish customer confirmation")
        Container(schedule_publish_port, "INT1337-PLN-Order-Scheduled", "Send Port", "Publish production schedule confirmation")
        Container(invoice_publish_port, "INT1337-INV-Order-Invoiced", "Send Port", "Publish invoice event")
    }
    ComponentDb(tracking_store, "BizTalk Tracking Store", "SQL Server", "Technical and business tracking")
    Rel(order_receive_port, order_orchestration, "Trigger", "Pipeline")
    Rel(invoice_receive_port, invoice_orchestration, "Trigger", "Pipeline")
    Rel(customer_sync_receive_port, customer_sync_orchestration, "Trigger", "Pipeline")
    Rel(order_orchestration, bre_policy, "Evaluate policy", "BRE")
    Rel(order_orchestration, order_canonical_map, "Transform", "XSLT")
    Rel(invoice_orchestration, invoice_canonical_map, "Transform", "XSLT")
    Rel(customer_sync_orchestration, customer_canonical_map, "Transform", "XSLT")
    Rel(order_canonical_map, confirm_send_port, "Deliver", "SOAP / REST")
    Rel(invoice_canonical_map, invoice_publish_port, "Deliver", "SOAP")
    Rel(customer_canonical_map, schedule_publish_port, "Deliver", "REST")
    Rel(order_canonical_map, schedule_publish_port, "Deliver", "FILE")
    Rel(order_orchestration, tracking_store, "Track", "SQL")
    Rel(invoice_orchestration, tracking_store, "Track", "SQL")
    Rel(customer_sync_orchestration, tracking_store, "Track", "SQL")

Component Type Highlights

  • Receive Layer: Receive Port components
  • Processing Layer: Orchestration components
  • Mapping Layer: Canonical Mapping components
  • Delivery Layer: Send Port components
  • Monitoring Component: Tracking Store

Import-Friendly Notes

  • Layer boundaries (Container_Boundary) provide stable domain-like grouping for repository entry creation.
  • Service-level capabilities use Container(...) (not Component(...)) so import can map them as Services instead of Integrations.
  • Consistent naming across BizTalk and Migration sets improves cross-diagram matching after import.

Next Steps