- 3 minutes to read

Azure Integration Services L3 Component Diagram Example

This component diagram shows how Azure-native services separate responsibilities for order processing, messaging, APIs, resiliency, and monitoring.

The structure maps directly to capabilities often implemented in BizTalk solutions.

Example Diagram

Preview Mermaid Code
C4Component title Azure Integration Services - Component View Container_Boundary(api_layer, "API Layer") { Component(order_api, "Order API Handler", "API", "Order submit and status endpoint") Component(customer_api, "Customer API", "API", "Customer lookup and sync endpoint") Component(product_api, "Product API", "API", "Product lookup endpoint") } Container_Boundary(workflow_layer, "Workflow Layer") { Container(order_intake_logic_app, "INT1337-RCV-Order-Incoming (Logic App)", "Workflow", "Receive and validate order request") Container(order_routing_logic_app, "INT1337-SND-Confirm-Outgoing (Logic App)", "Workflow", "Route confirmations to customer and partner channels") Container(invoice_logic_app, "INT1337-INV-Order-Invoiced (Logic App)", "Workflow", "Handle invoice posting and retries") Container(sync_logic_app, "INT1337-PLN-Order-Scheduled (Logic App)", "Workflow", "Scheduled planning and ERP synchronization") Component(retry_policy, "Retry Handling", "Workflow", "Backoff and retry policy execution") } Container_Boundary(messaging_layer, "Messaging Layer") { ComponentQueue(order_events_topic, "Order Events Topic", "Service Bus Topic", "Publish/subscribe order events") ComponentQueue(invoice_requests_queue, "Invoice Requests Queue", "Service Bus Queue", "Asynchronous invoice processing") ComponentQueue(dead_letter_queue, "Dead Letter Queue", "Service Bus Queue", "Poison message handling") } Container_Boundary(platform_layer, "Platform Services") { Component(function_enrichment, "Deduplication Guard Function", "Function", "Custom deduplication and payload enrichment") Component(key_vault_secrets, "Key Vault Secrets", "Security", "Secret and certificate retrieval") Component(app_insights, "Application Insights", "Monitoring", "Telemetry and diagnostics") } Rel(order_api, order_intake_logic_app, "Submit order", "HTTPS") Rel(order_intake_logic_app, order_routing_logic_app, "Validated order", "Workflow") Rel(order_routing_logic_app, order_events_topic, "Publish order event", "AMQP") Rel(order_routing_logic_app, invoice_requests_queue, "Enqueue invoice request", "AMQP") Rel(invoice_requests_queue, invoice_logic_app, "Consume invoice request", "AMQP") Rel(invoice_logic_app, retry_policy, "Apply retry policy", "Workflow") Rel(retry_policy, dead_letter_queue, "Route poison message", "AMQP") Rel(order_events_topic, function_enrichment, "Subscribe and enrich", "AMQP") Rel(sync_logic_app, customer_api, "Sync customer", "REST") Rel(order_routing_logic_app, product_api, "Resolve product", "REST") Rel(order_intake_logic_app, key_vault_secrets, "Read secret", "Managed Identity") Rel(order_routing_logic_app, key_vault_secrets, "Read secret", "Managed Identity") Rel(invoice_logic_app, key_vault_secrets, "Read secret", "Managed Identity") Rel(order_intake_logic_app, app_insights, "Write telemetry", "Telemetry") Rel(order_routing_logic_app, app_insights, "Write telemetry", "Telemetry") Rel(invoice_logic_app, app_insights, "Write telemetry", "Telemetry") Rel(sync_logic_app, app_insights, "Write telemetry", "Telemetry") Rel(retry_policy, app_insights, "Write retry metrics", "Telemetry") Rel(dead_letter_queue, app_insights, "Write failure metrics", "Telemetry")
C4Component
    title Azure Integration Services - Component View
    Container_Boundary(api_layer, "API Layer") {
        Component(order_api, "Order API Handler", "API", "Order submit and status endpoint")
        Component(customer_api, "Customer API", "API", "Customer lookup and sync endpoint")
        Component(product_api, "Product API", "API", "Product lookup endpoint")
    }
    Container_Boundary(workflow_layer, "Workflow Layer") {
        Container(order_intake_logic_app, "INT1337-RCV-Order-Incoming (Logic App)", "Workflow", "Receive and validate order request")
        Container(order_routing_logic_app, "INT1337-SND-Confirm-Outgoing (Logic App)", "Workflow", "Route confirmations to customer and partner channels")
        Container(invoice_logic_app, "INT1337-INV-Order-Invoiced (Logic App)", "Workflow", "Handle invoice posting and retries")
        Container(sync_logic_app, "INT1337-PLN-Order-Scheduled (Logic App)", "Workflow", "Scheduled planning and ERP synchronization")
        Component(retry_policy, "Retry Handling", "Workflow", "Backoff and retry policy execution")
    }
    Container_Boundary(messaging_layer, "Messaging Layer") {
        ComponentQueue(order_events_topic, "Order Events Topic", "Service Bus Topic", "Publish/subscribe order events")
        ComponentQueue(invoice_requests_queue, "Invoice Requests Queue", "Service Bus Queue", "Asynchronous invoice processing")
        ComponentQueue(dead_letter_queue, "Dead Letter Queue", "Service Bus Queue", "Poison message handling")
    }
    Container_Boundary(platform_layer, "Platform Services") {
        Component(function_enrichment, "Deduplication Guard Function", "Function", "Custom deduplication and payload enrichment")
        Component(key_vault_secrets, "Key Vault Secrets", "Security", "Secret and certificate retrieval")
        Component(app_insights, "Application Insights", "Monitoring", "Telemetry and diagnostics")
    }
    Rel(order_api, order_intake_logic_app, "Submit order", "HTTPS")
    Rel(order_intake_logic_app, order_routing_logic_app, "Validated order", "Workflow")
    Rel(order_routing_logic_app, order_events_topic, "Publish order event", "AMQP")
    Rel(order_routing_logic_app, invoice_requests_queue, "Enqueue invoice request", "AMQP")
    Rel(invoice_requests_queue, invoice_logic_app, "Consume invoice request", "AMQP")
    Rel(invoice_logic_app, retry_policy, "Apply retry policy", "Workflow")
    Rel(retry_policy, dead_letter_queue, "Route poison message", "AMQP")
    Rel(order_events_topic, function_enrichment, "Subscribe and enrich", "AMQP")
    Rel(sync_logic_app, customer_api, "Sync customer", "REST")
    Rel(order_routing_logic_app, product_api, "Resolve product", "REST")
    Rel(order_intake_logic_app, key_vault_secrets, "Read secret", "Managed Identity")
    Rel(order_routing_logic_app, key_vault_secrets, "Read secret", "Managed Identity")
    Rel(invoice_logic_app, key_vault_secrets, "Read secret", "Managed Identity")
    Rel(order_intake_logic_app, app_insights, "Write telemetry", "Telemetry")
    Rel(order_routing_logic_app, app_insights, "Write telemetry", "Telemetry")
    Rel(invoice_logic_app, app_insights, "Write telemetry", "Telemetry")
    Rel(sync_logic_app, app_insights, "Write telemetry", "Telemetry")
    Rel(retry_policy, app_insights, "Write retry metrics", "Telemetry")
    Rel(dead_letter_queue, app_insights, "Write failure metrics", "Telemetry")

Component Type Highlights

  • Workflow components: Order Intake, Validation, Routing, Retry Handling
  • Queue and Topic components: Order Queue, Invoice Queue, Customer Topic, Dead Letter Queue
  • API components: Customer API, Product API, Order API
  • Security component: Key Vault Secrets
  • Monitoring component: Monitoring

Import-Friendly Notes

  • Uses ComponentQueue for queue/topic items to improve consumer/messaging categorization.
  • Service-level workflow capabilities use Container(...) so import maps them as Services rather than Integrations.
  • Uses stable names that align with migration-mapping diagrams for traceability.

Next Step