- 3 minutes to read

Migration L3 Component Diagram Example

This migration component diagram is the L3 view of the Migration Journey example set. It zooms in from the L2 Container example and explains capability mapping by pairing BizTalk Server artifacts with their Azure Integration Services equivalents, so the migration intent is explicit for architects and developers.

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.

Migration capability mapping L3 Component diagram imported into Nodinite
The L3 Component diagram mapping BizTalk Server capabilities to Azure Integration Services.

Example Diagram

Preview Mermaid Code
C4Component title Migration Capability Mapping - BizTalk to Azure Integration Services Container_Boundary(biztalk_capabilities, "BizTalk Server") { Container(receive_location, "INT1337-RCV-Order-Incoming", "BizTalk Adapter", "Inbound trigger and adapter endpoint") Component(pipeline_map, "Pipeline and Map", "BizTalk Transform", "Canonical transform and validation") Component(orchestration, "Orchestration", "BizTalk Process", "Long-running process orchestration") ComponentQueue(messagebox, "MessageBox", "BizTalk Messaging", "Publish and subscribe message dispatch") Component(business_rules, "Business Rules", "BRE", "Routing and policy decision logic") Container(send_port, "INT1337-SND-Confirm-Outgoing", "BizTalk Adapter", "Outbound transport and protocol adaptation") ComponentDb(tracking_store, "Tracking and BAM", "SQL Server", "Operational and business monitoring") } Container_Boundary(azure_capabilities, "Azure Integration Services") { Container(logic_app_trigger, "INT1337-RCV-Order-Incoming (Logic App Trigger)", "Workflow", "Inbound trigger endpoint") Component(function_transform, "Azure Function Transform", "Function", "Transform and custom validation") Container(logic_app_workflow, "INT1337-SND-Confirm-Outgoing (Logic App Workflow)", "Workflow", "Process orchestration") ComponentQueue(service_bus_entities, "Service Bus Queue/Topic", "Service Bus", "Publish and subscribe messaging") Component(logic_app_conditions, "Logic App Conditions", "Workflow", "Routing and policy decision logic") Component(logic_app_connector, "Logic App Connector", "Connector", "Outbound protocol adapter") Component(app_insights_monitoring, "Application Insights", "Monitoring", "Telemetry and diagnostics") } Rel(receive_location, logic_app_trigger, "Capability mapping", "Inbound trigger") Rel(pipeline_map, function_transform, "Capability mapping", "Transform") Rel(orchestration, logic_app_workflow, "Capability mapping", "Process orchestration") Rel(messagebox, service_bus_entities, "Capability mapping", "Messaging backbone") Rel(business_rules, logic_app_conditions, "Capability mapping", "Policy and routing") Rel(send_port, logic_app_connector, "Capability mapping", "Outbound adapter") Rel(tracking_store, app_insights_monitoring, "Capability mapping", "Observability")
C4Component
    title Migration Capability Mapping - BizTalk to Azure Integration Services
    Container_Boundary(biztalk_capabilities, "BizTalk Server") {
        Container(receive_location, "INT1337-RCV-Order-Incoming", "BizTalk Adapter", "Inbound trigger and adapter endpoint")
        Component(pipeline_map, "Pipeline and Map", "BizTalk Transform", "Canonical transform and validation")
        Component(orchestration, "Orchestration", "BizTalk Process", "Long-running process orchestration")
        ComponentQueue(messagebox, "MessageBox", "BizTalk Messaging", "Publish and subscribe message dispatch")
        Component(business_rules, "Business Rules", "BRE", "Routing and policy decision logic")
        Container(send_port, "INT1337-SND-Confirm-Outgoing", "BizTalk Adapter", "Outbound transport and protocol adaptation")
        ComponentDb(tracking_store, "Tracking and BAM", "SQL Server", "Operational and business monitoring")
    }
    Container_Boundary(azure_capabilities, "Azure Integration Services") {
        Container(logic_app_trigger, "INT1337-RCV-Order-Incoming (Logic App Trigger)", "Workflow", "Inbound trigger endpoint")
        Component(function_transform, "Azure Function Transform", "Function", "Transform and custom validation")
        Container(logic_app_workflow, "INT1337-SND-Confirm-Outgoing (Logic App Workflow)", "Workflow", "Process orchestration")
        ComponentQueue(service_bus_entities, "Service Bus Queue/Topic", "Service Bus", "Publish and subscribe messaging")
        Component(logic_app_conditions, "Logic App Conditions", "Workflow", "Routing and policy decision logic")
        Component(logic_app_connector, "Logic App Connector", "Connector", "Outbound protocol adapter")
        Component(app_insights_monitoring, "Application Insights", "Monitoring", "Telemetry and diagnostics")
    }
    Rel(receive_location, logic_app_trigger, "Capability mapping", "Inbound trigger")
    Rel(pipeline_map, function_transform, "Capability mapping", "Transform")
    Rel(orchestration, logic_app_workflow, "Capability mapping", "Process orchestration")
    Rel(messagebox, service_bus_entities, "Capability mapping", "Messaging backbone")
    Rel(business_rules, logic_app_conditions, "Capability mapping", "Policy and routing")
    Rel(send_port, logic_app_connector, "Capability mapping", "Outbound adapter")
    Rel(tracking_store, app_insights_monitoring, "Capability mapping", "Observability")

Mapping Table

BizTalk component Azure equivalent
Receive Location Logic App Trigger
Orchestration Logic App Workflow
MessageBox Service Bus
Business Rules Logic App Conditions
Send Port Logic App Connector
Tracking Application Insights

Import-Friendly Notes

  • Uses ComponentQueue and ComponentDb where appropriate to reinforce messaging and data-store semantics.
  • Service-level capabilities are intentionally modeled with Container(...) so they import as Services instead of Integrations.
  • Uses consistent capability names across current and target boundaries for side-by-side analysis after import.

Next Steps