The dual-write problem — writing to a database and publishing to a message broker without atomicity — causes data loss and phantom events in production. The Outbox pattern solves it definitively: write both the business record and the outbound message in the same database transaction, then relay it to the broker. This guide covers polling vs CDC relays, Debezium integration, consumer idempotency, and how Outbox enables reliable Saga step execution.