Relationship · Benefits From
Source: Workload·Target: Pattern
Summary
Write-heavy transactional workloads that emit downstream events (order placed, payment captured) benefit from the outbox pattern to ensure events are published exactly when the database transaction commits: never before, never after.
Evidence
- ·Payment processors like Stripe use outbox-style patterns to ensure webhook delivery matches transaction commits
- ·Order processing systems emit domain events (OrderPlaced, PaymentCaptured) that must be consistent with the DB state
- ·Without outbox, dual writes (DB write + message broker publish) can diverge on failure: creating ghost orders or missed events
- ·Outbox relay latency is typically 10-50ms (Debezium CDC): acceptable for write-heavy transactional systems
- ·Exactly-once semantics are achievable with idempotent consumers and event_id deduplication
Operational Context
- ·Outbox table grows with write volume: implement TTL-based cleanup or partition pruning
- ·At 20,000 writes/second, outbox relay must process events at the same rate to avoid backlog
- ·Monitor outbox_rows_pending metric: sustained high values indicate relay backlog
Tradeoffs
- ·Adds one INSERT per transaction to the outbox table: minor but nonzero write amplification
- ·Relay is an additional component to maintain and monitor
- ·At-least-once delivery requires all downstream consumers to be idempotent
Evidence grounding
Grounded, 5 supporting itemsWrite-heavy transactional systems (payments, orders) almost universally need to emit events to downstream consumers. The outbox pattern is the standard solution for this dual-write problem.