Заказ сохранён в базе, а событие о нём так и не дошло до склада
Сервис заказов в одном методе делает INSERT заказа, коммитит транзакцию и публикует OrderCreated в Kafka. Раз в несколько дней склад не узнаёт о заказе: в логах в этот момент кратковременная недоступность брокера или перезапуск пода сразу после коммита. Переставить публикацию перед коммитом пробовали — появились события о заказах, которых нет в базе.
Какое решение описать в требованиях?
- Писать событие в таблицу outbox в той же транзакции
- Повторять публикацию три раза в том же методе
- Публиковать событие в Kafka внутри транзакции базы
- Сверять заказы со складом раз в сутки вручную
