Practical Azure integration decisions, patterns, and production notes.
The focus is deliberately narrow:
- APIs.
- Messaging.
- Event-driven integration.
- Service Bus.
- Azure Functions.
- Logic Apps.
- API Management.
- Blob Storage claim-check patterns.
- Key Vault and Managed Identity.
- Azure DevOps.
- Monitoring and operational maturity.
- Dataverse / Dynamics 365 integration.
This is not an encyclopedia of Azure services. It is a working reference for choosing integration services, spotting trade-offs, and avoiding the problems that usually appear after systems go live.
Built from real-world Azure integration and Dynamics 365 delivery experience, with a focus on production-oriented patterns.
| Need | I would usually start with |
|---|---|
| Durable async command | Service Bus Queue |
| Durable pub/sub | Service Bus Topic |
| Lightweight event notification | Event Grid |
| High-volume telemetry stream | Event Hubs |
| Public API boundary | API Management |
| Custom integration code | Azure Functions or App Service |
| Connector-heavy workflow | Logic Apps |
| Large payload handoff | Blob Storage claim check |
| Secrets | Key Vault |
| Azure-to-Azure auth | Managed Identity |
| Operational tracing | Application Insights |
| Cross-resource log queries | Log Analytics |
Avoid turning every integration into a synchronous HTTP chain. It works well until one dependency slows down, starts throttling, or needs replay.
- Service Selection Guide
- Architecture Recipes
- Production Readiness Checklist
- Messaging
- Integration
- Monitoring
The recipes are the most practical part of this repo.
| Recipe | Use when |
|---|---|
| Public API to Service Bus | Accept now, process later. |
| Dataverse to Service Bus | Decouple Dataverse work. |
| Blob Claim-Check | Reference large payloads. |
| DMZ-Safe Document Ingestion | Validate external uploads. |
| Enterprise Secure Integration Stack | Governed API and messaging. |
- API Management to Function to Service Bus to worker.
- Dataverse to Service Bus to Azure Function.
- Queue-based load leveling.
- Service Bus topic fan-out.
- Blob claim-check for large payloads.
- DMZ-safe document upload.
- Outbox for database-to-message consistency.
- Correlation IDs across APIs, queues, workers, and logs.
The first thing that usually breaks is not the happy path. It is supportability.
Watch for:
- Service Bus DLQs without alerts.
- Message handlers that are not idempotent.
- Correlation IDs lost at async boundaries.
- Retry policies that amplify downstream throttling.
- Secrets copied into app settings or pipelines.
- Private endpoints added before DNS is understood.
- Logic Apps that become hard to review once custom logic grows.
flowchart LR
external[External App] --> apim[API Management]
apim --> api[Function or App Service]
api --> bus[Service Bus Queue or Topic]
bus --> worker[Worker Function or Container App]
worker --> sql[(Azure SQL)]
worker --> blob[(Blob Storage)]
api --> insights[Application Insights]
worker --> insights
- Service Bus vs Event Grid vs Event Hubs
- Functions vs App Service vs Container Apps
- Logic Apps vs Durable Functions
- Key Vault vs App Configuration
- What I Would Usually Choose
- Docs Index
- Messaging
- Integration
- Architecture Patterns
- Service Selection Guide
- Production Readiness Checklist
- Monitoring
- Identity & Security
- DevOps
- Gotchas
Broader Azure topics are still covered, but briefly:
Contributions are welcome when they stay practical and field-tested.
Good additions include:
- Real-world gotchas.
- Decision tables.
- Secure defaults.
- Production snippets.
- Small architecture recipes.
- Links to official Microsoft documentation where they help.
See CONTRIBUTING.md.
- Dynamics 365 Developer Cheat Sheet
- Power Platform Integration Patterns
- Power Pages Cheat Sheet
- Dataverse Schema Design Guide
azure, azure-functions, azure-service-bus, azure-architecture,
cloud-architecture, dotnet, integration-patterns, azure-devops,
api-management, event-driven-architecture, service-bus, serverless,
cloud-native, microservices, power-platform, dynamics365
MIT. See LICENSE.