Back to questions
Senior
1
Про Transactional Outbox Pattern что-то слышал?
Companies where asked
Финтехробот
Answer from AI
sobes.tech AI
Transactional Outbox Pattern — это паттерн интеграции, который помогает гарантировать атомарность записи бизнес-данных и сообщений для внешних систем в распределённых приложениях.
Идея в том, что при выполнении бизнес-операции в рамках одной транзакции базы данных одновременно записывается событие (сообщение) в специальную таблицу — "outbox". После успешного коммита транзакции отдельный процесс или сервис читает эти сообщения из таблицы и отправляет их в очередь или внешнюю систему.
Это решает проблему "двухфазной коммита" между базой и системой сообщений, обеспечивая надежную доставку событий без потерь и дублирования.
Пример:
- В транзакции сохраняем изменения в бизнес-таблицах и добавляем запись в таблицу outbox.
- Транзакция коммитится.
- Отдельный воркер периодически читает новые записи из outbox и публикует их в брокер сообщений.
- После успешной публикации запись из outbox удаляется или помечается как обработанная.