Problem
Service must update DB AND publish event. Dual-write fails: DB commits, publish fails → inconsistency. 2PC unavailable.
Also known as: outbox, transactional-outbox, outbox-table, dual-write-problem
Guarantee atomic database update + message publish without distributed transactions, using an outbox table and relay.
Service must update DB AND publish event. Dual-write fails: DB commits, publish fails → inconsistency. 2PC unavailable.
Low — extra table + relay process
Medium — monitor relay lag, handle broker outages
Medium — understanding eventual consistency window
Relay crashes → message backlog, eventual delivery
Broker unavailable → relay retries with backoff
Duplicate publishes if relay crashes after publish but before mark (idempotent consumers needed)
Outbox bloat → cleanup job fails, table grows
CDC connector lag → events delayed