ADR-004: Transactional Outbox
Status: Accepted
Context
Cannot atomically commit DB and publish to Kafka
Decision
Outbox table written in same transaction, async relay publishes
Alternatives
Dual writes, 2PC
Tradeoffs
Latency vs consistency
Consequences
Guaranteed at-least-once delivery