Как согласовать изменение в базе данных и публикацию события?

Transactional outbox сохраняет бизнес-изменение и запись будущего события в одной транзакции БД. Отдельный relay публикует outbox в брокер после commit.

Короткий ответ

Что ответить на собеседовании

Transactional outbox сохраняет бизнес-изменение и запись будущего события в одной транзакции БД. Отдельный relay публикует outbox в брокер после commit.

Подробный разбор

Ответ с пояснениями

Transactional outbox сохраняет бизнес-изменение и запись будущего события в одной транзакции БД. Отдельный relay публикует outbox в брокер после commit.

Если relay отправил событие и упал до отметки об отправке, возможен повтор. Поэтому нужен стабильный event ID и идемпотентный consumer. Публикация напрямую «после commit» без outbox оставляет окно потери при сбое процесса. Для порядка событий используют номер версии агрегата и согласованное партиционирование; CDC — один из способов доставки outbox.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее