Объяснение
Транзакция защищает связанные записи, но не охватывает произвольный HTTP-вызов. Outbox сохраняет намерение отправить событие вместе с изменением БД. Кеш требует понятного срока и способа обновления.
Задача для самостоятельного решения
Как не потерять событие после COMMIT заказа?
Показать разбор ответа
В той же транзакции записать событие в outbox. Worker доставляет его повторяемо, получатель дедуплицирует. Отправка после COMMIT без outbox имеет окно потери.