Вопрос объясняет решение проблемы согласованности данных.
Короткий ответ
Используйте Transactional Outbox:
Сохраняйте событие в БД в той же транзакции.
Отправляйте в RabbitMQ через фоновый процесс.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.