Event-Driven Microservices with Azure Cosmos DB (Change Feed) | Tural Suleymani
Tural Suleymani explains how his team designed and evolved a high-scale event-driven microservices system using Azure Cosmos DB Change Feed as the backbone for domain events, including the trade-offs and operational issues that show up under real production traffic.
Full summary based on transcript
Why event-driven systems fail at scale
The session frames common failure modes in event-driven architectures:
- Tight coupling between services (often via synchronous dependencies)
- Fragile messaging pipelines
- Operational complexity that grows with throughput and number of consumers
Using Azure Cosmos DB Change Feed for domain events
Tural Suleymani describes using Cosmos DB Change Feed as the mechanism to publish and consume domain events:
- Writes land in Cosmos DB
- Change Feed emits an ordered stream of changes per logical partition
- Downstream services consume changes to react to domain events
Modeling events with bounded contexts
The talk covers structuring events around bounded contexts (DDD):
- Events are modeled per bounded context to reduce cross-service coupling
- Event design is aligned with domain boundaries rather than technical components
Partitioning and scaling considerations
The session highlights scaling problems and how they influence data/event design:
- Choosing partition keys that continue to work as load increases
- Avoiding hot partitions that concentrate traffic and throttle throughput
- Understanding what ordering guarantees you do (and don’t) get from Change Feed
Consistency and ordering trade-offs
The presenter discusses practical trade-offs that affect correctness and latency:
- Consistency choices and their impact on consumers
- Ordering guarantees and how they relate to partitioning
- Handling synchronous dependencies that can reintroduce coupling
Reliable consumers, observability, and failure handling
The session includes guidance on making consumers production-ready:
- Implementing reliable consumption patterns
- Adding observability to track event flow end-to-end
- Designing for failures and retries without breaking downstream systems
Live demo: end-to-end event flow
The talk includes a repeatable demo showing an end-to-end pipeline:
- A write operation in Cosmos DB
- Change Feed producing the change
- Downstream services consuming and reacting
- Observability and failure handling demonstrated as part of the flow
Links from the description
- Cosmos Conf 2026 playlist: https://aka.ms/CosmosConf26Playlist
- Cosmos Conf Challenge (DP-420 voucher for first 500 completions): https://aka.ms/CosmosDBConfChallenge
- Post-event survey: https://aka.ms/CosmosConf2026Survey
- Conference site: https://aka.ms/azurecosmosdbconf