How aravindvks/sutherland-banking-platform works
Sutherland Banking Platform is a modular UK banking application spanning customer and staff web journeys, domain-specific backend modules, vendor adapters, and operational services. The main customer workflow runs from the web app through BFF endpoints into banking journeys such as onboarding, payments, and card controls; staff review and reconciliation are separate branches. The README documents additional capabilities—including credit cards, scheduled payments, Direct Debits, inbound payments, and real-time card authorisation—that are retained here. Some backend wiring is unsampled, so uncertain relationships are omitted or marked dashed.
Main entry points: App.tsx Web app · BffApplication.java Banking BFF · OnboardingWorkflowImpl.java Onboarding and KYC · PaymentWorkflowImpl.java Payments and mandates
Components 24
Web experience
- Web app
web/src/App.tsx - Onboarding UI
web/src/modules/onboarding/Onboarding.tsx - Payments UI
web/src/modules/payments/Payments.tsx - Card UI
web/src/modules/cards/CardView.tsx - Credit card UI
web/src/modules/creditcards/CreditCard.tsx - Staff UI
web/src/staff/Staff.tsx
Banking journeys
- Banking BFF
services/bff/src/main/java/bank/pbp/bff/BffApplication.java - Onboarding and KYC
domains/onboarding/orchestration/src/main/java/bank/pbp/orchestrator/onboarding/OnboardingWorkflowImpl.java - Payments and mandates
domains/payments/orchestration/src/main/java/bank/pbp/orchestrator/payments/PaymentWorkflowImpl.java - Scheduled payments
domains/payments/orchestration/src/main/java/bank/pbp/orchestrator/schedules/ScheduleWorkflow.java - Direct Debits
domains/payments/orchestration/src/main/java/bank/pbp/orchestrator/directdebits/DirectDebitWorkflows.java - Card controls
domains/cards/orchestration/src/main/java/bank/pbp/orchestrator/cards/CardControlsWorkflow.java - Credit cards
domains/creditcards/orchestration/src/main/java/bank/pbp/orchestrator/creditcards/CreditCardWorkflows.java - Compliance review
domains/compliance/orchestration/src/main/java/bank/pbp/orchestrator/compliance/ComplianceWorkflow.java
Platform services
- Customer mapping
services/mapping-service/src/main/java/bank/pbp/mapping/MappingService.java - Event publishing
libs/platform-common/src/main/java/bank/pbp/common/events/EventPublisher.java
Vendor integrations
- Card authorisation
services/ehi-responder/src/main/java/bank/pbp/ehi/AuthorisationService.java - Finastra adapter
services/essence-adapter/src/main/java/bank/pbp/essence/EssenceController.java - Thredd adapter
services/thredd-adapter/src/main/java/bank/pbp/thredd/ThreddController.java - Atfinity adapter
services/atfinity-adapter/src/main/java/bank/pbp/atfinity/AtfinityController.java - Credit decision adapter
services/credit-adapter/src/main/java/bank/pbp/credit/CreditController.java
Operations
- Reconciliation
services/recon-service/src/main/java/bank/pbp/recon/ReconEngine.java
Other components
- Customer
- Bank staff
Connections 27
- Customer → Web app: uses
web/src/App.tsx - Bank staff → Web app: uses
web/src/App.tsx - Web app → Onboarding UI: renders
web/src/App.tsx - Web app → Payments UI: renders
web/src/App.tsx - Web app → Card UI: renders
web/src/App.tsx - Web app → Credit card UI: renders
web/src/App.tsx - Web app → Staff UI: renders
web/src/App.tsx - Web app → Banking BFF: calls API
- Banking BFF → Onboarding and KYC: starts journey
- Banking BFF → Payments and mandates: submits payments
- Banking BFF → Scheduled payments: manages schedules
- Banking BFF → Direct Debits: manages debits
- Banking BFF → Card controls: controls cards
- Banking BFF → Credit cards: manages credit
- Bank staff → Compliance review: reviews cases
- Finastra adapter → Reconciliation: provides source data
- Onboarding and KYC → Atfinity adapter: checks identity
- Onboarding and KYC → Customer mapping: links customer
- Payments and mandates → Finastra adapter: uses core banking
- Card controls → Thredd adapter: issues cards
- Credit cards → Credit decision adapter: requests decisions
- Credit cards → Thredd adapter: processes credit
- Card authorisation → Finastra adapter: places debit holds
services/ehi-responder/src/main/java/bank/pbp/ehi/AuthorisationService.java - Card authorisation → Thredd adapter: handles credit holds
services/ehi-responder/src/main/java/bank/pbp/ehi/AuthorisationService.java - Customer mapping → Event publishing: publishes changes
services/mapping-service/src/main/java/bank/pbp/mapping/MappingService.java - Onboarding and KYC → Event publishing: publishes events
- Payments and mandates → Event publishing: publishes events