Bet settlement and payout¶
Тип материала — референсная архитектура. HYPOTHETICAL — проектные схемы и контракты. INFERENCE — рекомендации и trade-offs.
Бизнес-задача¶
Применять результат соревнования и выплаты один раз на экономическое основание.
Функциональные требования¶
Хранить result revision и rule version, поддержать void, partial result и correction. Отделить внутренний credit от внешнего перевода.
NFR и критический путь¶
Settlement допускает controlled batching. Pending payout имеет свой срок и evidence. Повтор результата не блокирует другие рынки.
Компоненты и поток¶
flowchart LR
A["Result authority"] --> B["Versioned settlement rules"] --> C["Ledger posting"] --> D["Payout dispatcher"] --> E["Bank evidence"]
Контракты и владельцы состояния¶
Result authority owns verdict, settlement store records applied revision, ledger owns credit. PSP status подтверждается внешним reference.
Транзакционные границы¶
Capture hold, journal и applied settlement ID атомарны в ledger. Payout instruction сохраняется до сетевой отправки и получает собственный key.
Ordering, deduplication и idempotency¶
Уникальность bet_id + result_revision + effect kind. Исправление — reversal/replacement по отдельной identity. Старую revision нельзя применить поверх новой.
Отказ и восстановление¶
При lost payout ACK lookup по старому reference и reconcile statement. Исправление результата создаёт correcting journal. Retry не отправляет новую выплату до разрешения исхода.
Сверка¶
Сверить каждый bet с hold disposition, applied revision и journal. Сверить payout journal с PSP report и cash.
Мониторинг и алерты¶
Settlement backlog, unmatched payout references, duplicate rejects и correction age. Для каждого сигнала определить scope, cut и действие оператора. Порог подбирается по согласованному бюджету и наблюдаемой нагрузке.
Технологии и trade-offs¶
Real-time уменьшает время ожидания. Batch упрощает verified cut и ручное утверждение корректировок.
Вопросы на собеседовании¶
Почему settled не равно paid? Учётный эффект мог зафиксироваться до внешнего расчёта.