Payment Manager — Полная UML-схема процессов¶
Статусы реализации: - ✅ М1–М5 — реализовано - 🔧 Phase 1 — текущий спринт (Internal P2P sync + Rule Engine CEL Core P0) - 🔵 Phase 2 — следующий (IPPS / QP адаптеры) - 🟣 Phase 3–4 — будущее (разделение сервисов, WebSocket)
1. Машина состояний Intent¶

2. Зоны ответственности¶

3. Sequence: Phase 1 — Internal P2P Sync (🔧)¶

4. Sequence: Phase 2 — External PSP Async (🔵)¶

5. Консистентность данных — где и когда меняется состояние¶

6. Мутации данных по сервисам¶
| Момент | Метод | DB (PostgreSQL) | blnkfinance | Redis/Valkey |
|---|---|---|---|---|
| t=0 | createIntent |
INSERT intents{CREATED} ✅ | — | GET idempotency ✅ |
| t~8ms | validate() |
UPDATE intents{VALIDATED, limitRuleId 🔧} | — | — |
| t~18ms | validate() → CEL RuleEngine |
SELECT fee_rules (CEL eval) 🔧 | — | GET _metaCache (TTL 10s) 🔧 |
| t~25ms | authorize() |
UPDATE intents{AUTHORIZED, blnkInflightTx} ✅ | POST /transactions (Hold + fee_rule_id/version в meta) 🔧 | SET idempotency ✅ |
| t~80ms | settleSync() BEGIN TX |
SELECT FOR UPDATE (lock) 🔧 | — | — |
| t~110ms | settleSync() blnk 1 |
— | PUT inflight commit 🔧 | — |
| t~140ms | settleSync() blnk 2 |
— | POST settlement (Leg A+B) 🔧 | — |
| t~143ms | settleSync() COMMIT |
UPDATE intents{SETTLED} 🔧 | — | — |
| t~143ms | settleSync() COMMIT |
INSERT tx_events{OUTGOING} 🔧 | — | — |
| t~143ms | settleSync() COMMIT |
INSERT tx_events{INCOMING} 🔧 | — | — |
| post-commit | cache bust | — | — | DEL balance cache x2 🔧 |
| recovery | InternalRecoveryCall |
UPDATE intents{SETTLED} если crash 🔧 | 409 → no-op 🔧 | — |
| Phase 2 | dispatch() |
UPDATE intents{IN_PROGRESS} ✅ | — | XADD stream.*.jobs 🔵 |
| Phase 2 | ResultsConsumer |
UPDATE intents{COMPLETED/FAILED} 🔵 | — | XREADGROUP 🔵 |
| Phase 2 | OutboxWorker settle |
UPDATE intents{SETTLED} ✅ | commit + settlement 🔵 | — |
| Phase 2 | OutboxWorker void |
UPDATE intents{ROLLED_BACK} ✅ | void inflight 🔵 | — |
| Phase 2 | OutboxWorker |
INSERT tx_events 🔵 | — | — |
7. blnk Дерево транзакций — наследование meta_data¶

8. Recovery — пути восстановления¶

9. Деплой по фазам¶

10. Flutter — что и когда вызывает¶
