ADR-0021: Reconciliation Center
Статус
Accepted
Контекст
Платежи, game callbacks, outbox/inbox delivery, projections и provider state могут расходиться. Исправления должны идти через owner service commands, а не ручное изменение таблиц.
Решение
Создать Reconciliation Center как cross-service систему:
- detectors создают
ReconciliationIssue; - Ops Center показывает issues и runbooks;
- owner service выполняет correction command;
- manual close требует reason и audit.
Последствия
- Stuck/partial failures становятся видимыми.
- Immutable ledger не редактируется вручную.
- Provider/internal расхождения получают единый lifecycle.
Ссылки
- Reconciliation Center
Обратные ссылки
Автоссылки: где используется этот документ.
- Домен (CQRS) (2): Entity / Aggregate: LedgerTransactionEntity (+ LedgerEntryEntity), Entity / Aggregate: WalletAccountEntity
- API (5): GET /api/v1/platform/wallet/accounts — Реестр счетов кошелька, GET /api/v1/platform/wallet/accounts/{accountId}/ledger — Журнал проводок счёта, POST /api/v1/platform/wallet/adjustments — Ручная корректировка счёта, POST /api/v1/platform/wallet/statement-exports — Постановка выписки по любому счёту (XLSX), Wallet API — реестр операций и общие контрактные модели
- Use Cases (4): UC-WLT-002. Выплата поручения дебетует баланс получателя, UC-WLT-003. ПИН-админ вручную корректирует баланс, UC-WLT-005. Оператор ПИН смотрит журнал проводок счёта (сверка), UC-WLT-006. Компенсирующее начисление отражается в балансе после MoneyReceived
- Консюмеры (4): Consumer: Rewards Commission Distribution Adjusted, Consumer: Rewards Commission Money Received, Consumer: Rewards Payout Order Status Changed, Consumer: Rewards Referral Accrual Status Changed
- adr (1): ADR-0065 — контекст wallet (внутренние балансы и ledger)
- index.md (1): Wallet Service