SobesLab логотип SobesLab

Ответ

Шаблон надежной интеграции БД и брокера сообщений: при изменении данных вместо прямой отправки события сообщение записывается в локальную таблицу-«outbox» в рамках той же транзакции, что и изменения в данных; отдельный процесс или поток читает outbox и публикует события в очередь (Kafka, RabbitMQ); гарантируется, что событие не потеряется (если транзакция закоммитилась, оно точно в outbox) и не будет отправлено без сохранения данных; решает проблему dual-write; нужно чистить старые записи outbox и обрабатывать дубли на приемной стороне (идемпотентность).