10-part learning path
Production Messaging in .NET
Design reliable message-driven systems from domain events to recovery.
- 01
Domain events: From DDD history to a reliable production flow
Understand how Domain Events model business facts, how aggregates record and dispatch them, and how to choose the correct transaction boundary for reliable production systems.
- 02
Circuit Breaker: Prevent Cascading Failures Before They Take Down Your Microservices
Design, configure, and operate circuit breakers for production HTTP dependencies with Polly v8 and Microsoft.Extensions.Http.Resilience.
- 03
Transactional Outbox: Close the Dual-Write Gap Without Distributed Transactions
Persist business state and integration messages atomically, then operate an at-least-once relay with explicit deduplication, recovery, and observability.
- 04
Idempotent Consumer: Turn Redelivery Into One Business Effect
Design message consumers that tolerate duplicate delivery without repeating database changes, payments, notifications, or downstream commands.
- 05
Saga: Choose Choreography or Orchestration for Long-Running Consistency
Coordinate multi-service business workflows with explicit state, compensation, timeouts, and a deliberate choice between choreography and orchestration.
- 06
Retry, Timeout, and Backoff: Bound Transient Failure Without Amplifying It
Build deadline-aware .NET resilience pipelines that retry only safe transient failures, spread load with jitter, and preserve the caller's total latency budget.
- 07
Distributed Transactions: Why Two-Phase Commit Rarely Fits Microservices
Understand the guarantees and failure costs of two-phase commit, how .NET transactions escalate, and when local transactions plus messaging are the safer production design.
- 08
Exactly Once Is a Myth: Define the Guarantee at Every Boundary
Separate broker, producer, processor, database, and business-effect guarantees so exactly-once claims become testable production contracts.
- 09
Dead Letter Queue: Quarantine Failed Messages Without Hiding Them
Operate dead-letter queues as bounded quarantine with failure classification, ownership, safe replay, and evidence that the original defect is fixed.
- 10
Production Messaging Checklist: Prove Reliability Before Release
Review message identity, contracts, delivery, idempotency, ordering, resilience, observability, recovery, and ownership with evidence rather than assumptions.