Sobes.tech
Back to questions
Senior
1

Про Transactional Outbox Pattern что-то слышал?

Companies where asked
Финтехробот

Answer from AI

sobes.tech AI

Transactional Outbox Pattern — это паттерн интеграции, который помогает гарантировать атомарность записи бизнес-данных и сообщений для внешних систем в распределённых приложениях.

Идея в том, что при выполнении бизнес-операции в рамках одной транзакции базы данных одновременно записывается событие (сообщение) в специальную таблицу — "outbox". После успешного коммита транзакции отдельный процесс или сервис читает эти сообщения из таблицы и отправляет их в очередь или внешнюю систему.

Это решает проблему "двухфазной коммита" между базой и системой сообщений, обеспечивая надежную доставку событий без потерь и дублирования.

Пример:

  1. В транзакции сохраняем изменения в бизнес-таблицах и добавляем запись в таблицу outbox.
  2. Транзакция коммитится.
  3. Отдельный воркер периодически читает новые записи из outbox и публикует их в брокер сообщений.
  4. После успешной публикации запись из outbox удаляется или помечается как обработанная.