Class Details
This four-day private online class is for Azure developers and software architects who design and build event-driven distributed applications on .NET 10. It starts where AI-200 (formerly AZ-204) stops. The exam names the building blocks, this class implements the patterns on top of them, from the transactional outbox and idempotent consumers to event sourcing, durable workflows and sagas.
Every topic is taught on one domain, Contoso Logistics, a last-mile parcel delivery company. Shipments are booked, vans report their position, scanners report every parcel, and an operations console shows the network live.
Day one designs the system with event storming, commands, events and reliability patterns, models it with Aspire and hosts it on Container Apps and AKS. Day two connects the services with Service Bus, Event Grid and Event Hubs. Day three stores the history in Cosmos DB with outbox, change feed projections, CQRS and event versioning, then makes the services portable with Dapr.
Day four makes long-running processes survive failures with the Durable Task Scheduler, Durable Functions, Dapr Workflow and saga orchestration. It finishes with AI agents that take part in the event flow like any other service.
Audience
- Azure developers who build distributed and event-driven applications
- Software architects who design microservices on Azure
Prerequisites
- C# and .NET experience
- Azure development at AI-200 (formerly AZ-204) level
- Docker Desktop
- An Azure subscription
- A GitHub account
Curriculum
Module 1: Designing Event-Driven Distributed Systems
- Modular Monolith vs. Microservices
- Sync vs. Async: Commands & Events
- Event Storming: Find Service Boundaries
- Event Types: Domain, Integration, CloudEvents
- Reliability Patterns: Outbox, Saga, Idempotency
- Azure Messaging: Pick the Broker
Module 2: Building Distributed Apps with Aspire
- Aspire AppHost: Model the System
- ServiceDefaults: Telemetry, Resilience, Discovery
- Aspire Integrations: Hosting & Client
- Aspire Dashboard: Traces Across Services
- Polyglot AppHost: Angular & Python
- Aspire Testing: Distributed Integration Tests
Module 3: Hosting on Container Apps & AKS
- Aspire Deploy: ACR & Container Apps
- Key Vault & App Configuration
- Revisions: Traffic Splitting & Draining
- AKS: Aspire-Generated Kubernetes Manifests
- Application Insights: Traces & KQL
Module 4: Reliable Messaging with Service Bus
- Topic Subscriptions: SQL Filters
- Azure Functions: Service Bus Triggers
- Competing Consumers: KEDA Scale Rules
- Sessions: Ordered Message Processing
- Dead-Letter Queues: Poison Messages
- Idempotent Consumers: Duplicate Detection
Module 5: Events & Streams with Event Grid & Event Hubs
- Event Grid: Custom Topics & Subscriptions
- Event Grid: Filters, Retries, Dead-Letter
- Event Grid Namespaces: Pull Delivery
- Event Hubs: Partitions & Checkpoints
- Event Hubs: Kafka-Compatible Streaming
- SignalR Service: Push to Browsers
Module 6: Event Sourcing & CQRS with Cosmos DB
- Transactional Outbox: Atomic Publishing
- Change Feed Processor: Projections
- CQRS: Separate Writes from Reads
- Read Models: Indexing, RUs, Consistency
- Managed Redis: Change-Feed Cache Invalidation
- Event Store: Aggregates & Snapshots
- Event Versioning: Evolve Schemas Safely
Module 7: Dapr Building Blocks for Portable Services
- Dapr Sidecar: Run with Aspire
- Service Invocation: mTLS & Retries
- State Stores: ETags & Concurrency
- Pub/Sub: Swap Brokers via Components
- Resiliency Policies: Retries & Breakers
- Dapr Actors: Virtual Actor Model
- Managed Dapr: Container Apps vs. AKS
Module 8: Durable Execution, Workflows & Sagas
- Durable Execution: Replay & Determinism
- Durable Task Scheduler: Managed Backend
- Durable Functions: Orchestrations & Entities
- Durable Timers: External Events & Approvals
- Durable Task SDK: KEDA-Scaled Workers
- Dapr Workflow: Portable Orchestrations
- Saga Orchestration: Compensating Activities
Module 9: AI Agents in Event-Driven Systems
- Microsoft.Extensions.AI: Foundry Model Client
- Agent Subscribers: React to Events
- LLM Calls: Durable Activities
- Rate Limits: Priority Queues & KEDA
- Vector Search: Change Feed Embeddings
- Agent Choreography: Events vs. A2A
Class Logistics
AI Harness: Bring your own

