Опишите паттерн Transactional Outbox в связке с Debezium (CDC, Change Data Capture). Какую проблему надежности распределенных систем решает этот стек?

Приложение сохраняет бизнес-данные и outbox-событие одной транзакцией; Debezium читает подтверждённые изменения через CDC и передаёт их в брокер.

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

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

Приложение сохраняет бизнес-данные и outbox-событие одной транзакцией; Debezium читает подтверждённые изменения через CDC и передаёт их в брокер.

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

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

Приложение сохраняет бизнес-данные и outbox-событие одной транзакцией; Debezium читает подтверждённые изменения через CDC и передаёт их в брокер.

Outbox Event Router преобразует запись таблицы в событие, выбирая тему, ключ агрегата и payload по конфигурации. Таким образом приложение не пытается отдельно подтвердить БД и Kafka в ненадёжной последовательности dual write.

Нужно сохранять уникальный ID события, совместимую схему и порядок по агрегату. Потребители всё равно должны выдерживать повторы; CDC не делает произвольное внешнее действие exactly-once. Контролируйте состояние connector, offsets, lag и удержание журнала БД. Очистку outbox согласуйте с гарантированным чтением событий.

Источник: debezium.io.

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

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

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

Подробнее