← Back to microservices patterns map
📤
Microservices Pattern

Outbox + Inbox Pattern

Use outbox records for reliable sends and inbox records for idempotent receives.

consistency

Detailed Description

Outbox solves reliable event publishing. Inbox solves duplicate event processing.

Together they create practical exactly-once effects over systems that normally deliver at least once.

Visual Diagram

Sender DB transaction:
write data + outbox
Receiver:
check inbox messageId
process once

Tradeoffs

Pros

Reliable delivery and deduplication

Cons

Inbox/outbox cleanup and operational complexity

Examples: Debezium outbox, custom outbox poller, inbox table