Architecture Decision Matrix¶
This matrix helps architects move from workload type to likely Azure service combinations. Use it as a first-pass filter, then validate with workload guides and design labs.
| Workload type | Front-end and compute | Data and state | Integration | Notes |
|---|---|---|---|---|
| Public web application | Front Door + App Service | Azure SQL + Key Vault | Event Grid or Service Bus as needed | Strong baseline for managed HTTP workloads. [Documented] |
| Private internal application | App Service Private Endpoint for inbound + App Service VNet integration for outbound | Azure SQL or PostgreSQL + Key Vault | Private Endpoints, optional Service Bus | Prefer when no internet exposure is allowed. [Documented] |
| Event-driven business workflow | API + Functions or App Service | Cosmos DB or Azure SQL | Service Bus + Event Grid | Best for decoupled processing and notifications. [Correlated] |
| Serverless file or data processing | Functions or Container Apps jobs | Storage + optional Redis | Event Grid or queues | Strong elasticity for bursty pipelines. [Observed] |
| Microservices platform | AKS or Container Apps | Polyglot stores | Service Bus, Event Grid, API gateway | Choose only if service autonomy justifies the added ops load. [Inferred] |
| Data analytics | Synapse, Databricks, or Fabric-adjacent patterns | Data Lake + analytical stores | Event Hubs or batch ingestion | Optimized for large-scale data movement and analytics. [Documented] |
| Enterprise landing zone shared services | Shared platform services | Central policy and logs | Hub-spoke or Virtual WAN | Focus on governance and connectivity. [Validated] |
Selection notes¶
- App Service is favored when the team wants managed HTTP hosting with minimal platform operations. [Documented]
- Functions fits event-driven and bursty execution patterns. [Documented]
- Container Apps is useful when container packaging is needed without full Kubernetes ownership. [Correlated]
- AKS is justified when workload complexity, service mesh needs, or runtime control exceed simpler options. [Inferred]
flowchart LR
A[Workload type] --> B{Interaction style}
B -->|HTTP-centric| C[App Service or Container Apps]
B -->|Event-driven| D[Functions plus messaging]
B -->|Platform-intensive| E[AKS]
C --> F[Choose data store]
D --> F
E --> F Microsoft Learn references¶
- https://learn.microsoft.com/en-us/azure/architecture/guide/technology-choices/
- https://learn.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree