What problem does it solve? It prevents lost events and dual-write failures when a database commit and an external message dispatch must happen atomically, by persisting events to an outbox table and delivering them asynchronously with at-least-once guarantees. ## Core Features & Use Cases - Transactional Outbox Entity: Defines the OutboxMessage entity with UUID v7 IDs, JSONB payloads, and a Pending/Processing/Completed/Failed/DeadLettered status lifecycle. - Polling Processor with Backoff: Configures an OutboxProcessor background service using PeriodicTimer polling, optimistic concurrency claims, and exponential retry with a configurable ceiling. - Specialized Variants: Documents three independent outbox tables (general OutboxMessage, PolicyChangeOutbox, PdsSyncOutbox) each with dedicated entities and repositories. - Use Case: When publishing a domain event like EventCreated after saving an aggregate, write it to the outbox in the same transaction and let the processor dispatch it reliably, surviving crashes and duplicate deliveries. ## Quick Start Ask the AI to implement a new domain event using the transactional outbox pattern with an idempotent dispatcher and retry handling.