10-part learning path

Production Messaging in .NET

Design reliable message-driven systems from domain events to recovery.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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. 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.