2.8 KiB
2.8 KiB
SSU Atomic Settlement Flow
Overview
SSU atomic settlement uses Synthetic Settlement Units for cross-border settlement with atomic execution guarantees. This flow documents the complete SSU-based settlement process.
Prerequisites
- SSU exists and is active
- Sufficient SSU balance
- Source and destination banks registered
- Atomic settlement service operational
Visual Flow Diagram
┌─────────────┐
│ SSU │
│ Settlement │
│ Request │
└──────┬──────┘
│
│ 1. Verify SSU
▼
┌─────────────────────────┐
│ Verify SSU & Balance │
│ - SSU lookup │
│ - Balance check │
└──────┬──────────────────┘
│
│ 2. Create Transaction
▼
┌─────────────────────────┐
│ Create SSU Transaction │
│ - Transaction ID │
│ - Settlement type │
└──────┬──────────────────┘
│
│ 3. Execute Atomic Swap
▼
┌─────────────────────────┐
│ Execute Atomic Swap │
│ - Verify commitments │
│ - Execute on both sides│
└──────┬──────────────────┘
│
│ 4. Complete
▼
┌─────────────┐
│ Settlement │
│ Complete │
└─────────────┘
Step-by-Step Process
Step 1: Verify SSU
- Lookup SSU by ID
- Verify SSU is active
- Check SSU balance
- Verify sufficient balance
Code Reference: src/core/settlement/ssu/ssu-service.ts:99-126
Step 2: Create Transaction
- Create SSU transaction record
- Set transaction type:
settle - Link to source and destination banks
- Store transaction ID
Code Reference: src/core/settlement/ssu/ssu-transaction.service.ts
Step 3: Execute Atomic Swap
- Create commitments for both sides
- Verify commitments match
- Execute swap atomically
- Verify execution success
Code Reference: src/core/settlement/isn/atomic-settlement.service.ts
Error Handling
- SSU not found: Return error
- Insufficient balance: Return error
- Atomic swap failure: Rollback, mark failed
Integration Points
- SSU Service:
src/core/settlement/ssu/ssu-service.ts - Atomic Settlement Service:
src/core/settlement/isn/atomic-settlement.service.ts
Performance Metrics
- Total End-to-End: < 150ms target
- Throughput: 5,000+ settlements/second
Related Flows: