Last Updated: June 8, 2026
When a service changes data and publishes an event, it writes to two systems: the database and the message broker.
Either operation can fail. The database write may succeed while publishing fails, or the event may publish for data that rolls back. This is the dual-write problem.
The outbox pattern fixes it by saving the event in the same database transaction as the data.
This chapter covers the outbox pattern, consumer idempotency, Change Data Capture, and when to use each approach.