Transactional Outbox связывает изменение данных и намерение отправить событие одной локальной транзакцией. Доставкой записей outbox занимается отдельный relay.
Что вы можете сказать о паттерне Transactional Outbox?
Transactional Outbox связывает изменение данных и намерение отправить событие одной локальной транзакцией. Доставкой записей outbox занимается отдельный relay.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Transactional Outbox связывает изменение данных и намерение отправить событие одной локальной транзакцией. Доставкой записей outbox занимается отдельный relay.
Relay может опрашивать таблицу или получать изменения через CDC. При недоступном брокере он повторяет отправку; запись не должна исчезать до подтверждённого результата.
Паттерн закрывает разрыв между commit в БД и первой публикацией, но не отменяет дубли. Нужны event ID, идемпотентные потребители и определённый порядок событий для одного объекта. Контролируйте backlog, возраст самой старой записи и очистку успешно отправленных событий. Сам outbox не означает мгновенную согласованность всех сервисов.