How saimandsxroy/autonomous-distributed-banking-compliance works
RuneStone is a corporate treasury and AML platform. A client or B2B merchant initiates treasury activity; the documented core path applies distributed idempotency and velocity controls, posts a balanced ledger entry, then relays events for AML analysis, holds, investigation and human review. The product also exposes batch settlement, FX, reconciliation, corporate wires, and SAR export. The README supports the main backend flow; excerpts and the SOURCE INDEX provide additional component evidence, but many controller and integration details were not sampled.
Main entry points: JournalEntryService.java Double-entry ledger · GeminiAmlDetectiveService.java AI investigation · App.jsx React client · BalanceHoldService.java Balance holds
Components 27
Treasury client
- React client
client/src/App.jsx - Client API
client/src/api/treasuryApi.js
Ledger and payments
- Security gateway
server/src/main/java/com/runestone/treasury/config/SpringSecurity.java - Idempotency and velocity
server/src/main/java/com/runestone/treasury/service/IdempotencyService.java - Double-entry ledger
server/src/main/java/com/runestone/treasury/service/JournalEntryService.java - Journal entries
server/src/main/java/com/runestone/treasury/entity/JournalEntry.java - Posting legs
server/src/main/java/com/runestone/treasury/entity/PostingLeg.java - Treasury accounts
server/src/main/java/com/runestone/treasury/entity/TreasuryAccount.java - Account repository
server/src/main/java/com/runestone/treasury/repository/TreasuryAccountRepository.java - MySQL ledger store
- Outbox relay
server/src/main/java/com/runestone/treasury/scheduler/OutboxRelayScheduler.java - Kafka events
Sentinel AML
- Treasury event consumer
server/src/main/java/com/runestone/treasury/service/TreasuryEventConsumerService.java - Graph detection
server/src/main/java/com/runestone/treasury/service/AmlGraphDetectionService.java - Balance holds
server/src/main/java/com/runestone/treasury/service/BalanceHoldService.java - Hold records
server/src/main/java/com/runestone/treasury/entity/BalanceHold.java - Policy RAG
server/src/main/java/com/runestone/treasury/service/AmlPolicyRagService.java - AI investigation
server/src/main/java/com/runestone/treasury/service/GeminiAmlDetectiveService.java - Gemini AI
- Officer approval
server/src/main/java/com/runestone/treasury/service/HitlApprovalService.java - SAR PDF export
server/src/main/java/com/runestone/treasury/service/SarPdfExportService.java
Treasury operations
- Batch settlement
server/src/main/java/com/runestone/treasury/service/SettlementBatchService.java - FX treasury
server/src/main/java/com/runestone/treasury/service/FxTreasuryService.java - EOD reconciliation
server/src/main/java/com/runestone/treasury/service/EodReconciliationService.java - Compliance audit
server/src/main/java/com/runestone/treasury/service/ComplianceAuditLogService.java
Other components
- B2B merchant
- Compliance officer
Connections 26
- B2B merchant → React client: initiates activity
- React client → Client API: requests API
- React client → Security gateway: sends requests
- Security gateway → Idempotency and velocity: checks requests
- Idempotency and velocity → Double-entry ledger: permits posting
- Double-entry ledger → MySQL ledger store: commits ledger
- Double-entry ledger → Journal entries: persists entries
server/src/main/java/com/runestone/treasury/service/JournalEntryService.java - Double-entry ledger → Posting legs: creates legs
server/src/main/java/com/runestone/treasury/service/JournalEntryService.java - Double-entry ledger → Account repository: locks accounts
server/src/main/java/com/runestone/treasury/service/JournalEntryService.java - Account repository → Treasury accounts: loads accounts
server/src/main/java/com/runestone/treasury/repository/TreasuryAccountRepository.java - Double-entry ledger → Outbox relay: writes outbox
- Outbox relay → Kafka events: relays events
- Kafka events → Treasury event consumer: dispatches events
- Treasury event consumer → Graph detection: checks transactions
- Graph detection → Balance holds: flags cycles
- Balance holds → Hold records: records quarantine
- Balance holds → AI investigation: triggers review
- AI investigation → Policy RAG: retrieves policies
- AI investigation → Gemini AI: requests analysis
- AI investigation → Officer approval: opens approval
- Compliance officer → Officer approval: reviews case
- Compliance officer → SAR PDF export: requests filing
- Batch settlement → Double-entry ledger: posts transfers
server/src/main/java/com/runestone/treasury/service/SettlementBatchService.java - Double-entry ledger → FX treasury: calculates FX quote
server/src/main/java/com/runestone/treasury/service/JournalEntryService.java - EOD reconciliation → MySQL ledger store: compares ledger
server/src/main/java/com/runestone/treasury/service/EodReconciliationService.java - EOD reconciliation → Compliance audit: records audit
server/src/main/java/com/runestone/treasury/service/EodReconciliationService.java