Skip to content

Idempotent Inbox and Transactional Outbox

Atomically record intended messages and deduplicate received messages across database-broker boundaries.

flowchart LR J[Junior: dual-write problem] --> M[Middle: inbox/outbox] --> S[Senior: failure mistakes] --> P[Professional: effectively-once scale]
flowchart LR Service --> DB[(Business row plus outbox)] --> Relay --> Kafka --> Inbox --> Effect
| Level | Guide | You are done when | |---|---|---| | Junior | Definition and why | You can explain the dual-write gap. | | Middle | How it works | You can make publication and consumption idempotent. | | Senior | Failures and mistakes | You can handle crashes and dedup lifecycle. | | Professional | Best practices and scale | You can operate effectively-once effects. | Practice rule: Make intent atomic locally; assume every message can repeat.

CDC | DLQ/retry