outbox-pattern
Outbox Pattern Implementation
Overview
The Outbox pattern ensures reliable event processing:
- Atomic persistence - Events saved in same transaction as aggregate
- Guaranteed delivery - Events processed even if app crashes
- Eventual consistency - Async processing with retry
- Idempotency - Handle duplicate processing gracefully
Quick Reference
| Component | Purpose |
|---|---|
OutboxMessage |
Persisted event entity |
OutboxMessageConfiguration |
EF Core mapping |
ProcessOutboxMessagesJob |
Background processor (Quartz) |
IdempotentDomainEventHandler |
Deduplicated handler wrapper |
More from ronnythedev/dotnet-clean-architecture-skills
dotnet-clean-architecture
Scaffolds a complete .NET solution following Clean Architecture principles with proper layer separation (API, Application, Domain, Infrastructure). Creates project structure, dependency injection setup, and cross-cutting concerns configuration.
48dapper-query-builder
Generates optimized read queries using Dapper. Includes multi-mapping for joins, pagination, dynamic filtering, CTEs, and best practices for high-performance data access.
23quartz-background-jobs
Generates scheduled background jobs using Quartz.NET. Includes job definitions, triggers, cron scheduling, dependency injection, and persistent job store configuration.
15unit-testing
Generates unit tests for command and query handlers using xUnit and NSubstitute. Implements Arrange-Act-Assert pattern with comprehensive test coverage for success and failure scenarios.
12cqrs-command-generator
Generates CQRS Commands with Handlers, Validators, and Request DTOs following Clean Architecture patterns. Commands represent actions that modify state and return Result types for proper error handling.
12fluent-validation
Generates FluentValidation validators for commands and queries. Includes common validation rules, custom validators, async validation, and integration with MediatR pipeline behaviors.
11