Transactional Outbox сохраняет бизнес-изменение и событие в одной транзакции БД. Отдельный отправитель читает outbox и доставляет события в брокер, устраняя разрыв между commit и публикацией.
Что такое Transactional Outbox и как он работает?
Transactional Outbox сохраняет бизнес-изменение и событие в одной транзакции БД. Отдельный отправитель читает outbox и доставляет события в брокер, устраняя разрыв между commit и публикацией.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Transactional Outbox сохраняет бизнес-изменение и событие в одной транзакции БД. Отдельный отправитель читает outbox и доставляет события в брокер, устраняя разрыв между commit и публикацией.
Если отправитель упал после публикации, но до отметки обработки, сообщение придёт повторно — потребитель должен быть идемпотентным. Храните event_id, тип, payload, версию и данные о попытках. Для упорядочения по сущности нужен ключ и последовательность; глобальный порядок не появляется автоматически. Outbox решает атомарность записи намерения, а не обещает exactly-once любого внешнего эффекта.