Sobes.tech
Middle+

What is the Outbox pattern?

sobes.tech AI

Answer from AI

The Outbox pattern is used to ensure reliable message delivery between services in distributed systems, especially when using event-driven architecture.

The idea is that when data changes in the database (for example, within a transaction), a special record is also written to the Outbox table along with the main changes. This table acts as a buffer for messages that need to be sent to other services or systems (for example, via a message queue).

Advantages:

  • Guarantees atomicity: data changes and writing to the Outbox occur in a single transaction.
  • Helps prevent message loss during failures.
  • Separates message sending logic from the main business logic.

Example:

  1. In a transaction, update the order and add a record to the outbox table with the event "OrderUpdated".
  2. A separate process reads the outbox table and sends messages to the queue.
  3. After successful sending, the record from the outbox is deleted or marked as sent.

This ensures reliable integration between microservices without data loss.