События и повторная доставка
Источник события, повтор и подтвержденный результат.
Kafka и outbox допускают повторную доставку. Событие связывается с предметной операцией, его источником и ключом идемпотентности. Ошибка отправки не должна создавать второе начисление.
Feature: Повтор платежного события
Scenario: Повтор платежного события
Given FiatDeposited с данным paymentId уже обработан
When поступает тот же платеж
Then используется существующий результат
And второй выпуск актива не создаетсяПлатежное событие и банковское уведомление — разные границы. В репозитории есть обработчики FiatDeposited и PayoutConfirmed; работающий отправитель от банка не подтвержден. Событие о выпуске или отправке транзакции не заменяет проверку receipt. Контракт должен задавать версию, идентификатор, связь с операцией и доверенный источник. Сроки хранения и порядок сверки определяются эксплуатацией. Гарантию exactly-once не заявляем. Источники: packages/contracts/proto/maniton/payments и events; обработчики CFA и общий outbox. Платежи.