How hamilton2959/fraud-detection-in-digital-banking-system works
This repository implements a banking platform split across account, transfer, fraud, payment, gateway, and notification services. A transfer request is handled by the transaction service, which coordinates account balance operations and publishes events for fraud checks; suspicious transfers can require OTP verification, while completion or compensation produces further events. Separately, payments create Razorpay orders and process webhooks. The graph distinguishes shown calls and event publications from event-consumer wiring inferred only from the service layout; the README is empty and several integrations were not excerpted.
Main entry points: PaymentService.java Payment processing · ApiGatewayApplication.java API gateway · TransactionService.java Transfer orchestration · FraudDetectionService.java Fraud checks
Components 20
API access
- API gateway
api-gateway/src/main/java/com/hamilton/apigateway/ApiGatewayApplication.java
Accounts
- Account API
account-service/src/main/java/com/hamilton/accountservice/controller/AccountController.java - Account operations
account-service/src/main/java/com/hamilton/accountservice/service/AccountService.java - Account records
account-service/src/main/java/com/hamilton/accountservice/repository/AccountRepository.java - Account event handler
account-service/src/main/java/com/hamilton/accountservice/service/AccountEventConsumer.java
Transfers
- Transaction API
transaction-service/src/main/java/com/hamilton/transactionservice/controller/TransactionController.java - Transfer orchestration
transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java - Transaction records
transaction-service/src/main/java/com/hamilton/transactionservice/repository/TransactionRepository.java - Account client
transaction-service/src/main/java/com/hamilton/transactionservice/client/AccountServiceClient.java
Fraud detection
- Fraud event handler
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionEventConsumer.java - Fraud checks
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java - Fraud account client
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/client/AccountServiceClient.java - Fraud state
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java
Payments and notices
- Payment API
payment-service/src/main/java/com/hamilton/paymentservice/controller/PaymentController.java - Payment processing
payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java - Payment records
payment-service/src/main/java/com/hamilton/paymentservice/repository/PaymentRepository.java - Notifications
notification-service/src/main/java/com/hamilton/notificationservice/service/NotificationService.java
Other components
- API client
- Kafka events
- Razorpay
Connections 24
- API client → API gateway: sends requests
- API gateway → Account API: routes requests
- API gateway → Transaction API: routes requests
- API gateway → Payment API: routes requests
- Account API → Account operations: calls
account-service/src/main/java/com/hamilton/accountservice/controller/AccountController.java - Account operations → Account records: reads and writes
account-service/src/main/java/com/hamilton/accountservice/service/AccountService.java - Account event handler → Account operations: dispatches events
account-service/src/main/java/com/hamilton/accountservice/service/AccountEventConsumer.java - Transaction API → Transfer orchestration: calls
transaction-service/src/main/java/com/hamilton/transactionservice/controller/TransactionController.java - Transfer orchestration → Transaction records: reads and writes
transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java - Transfer orchestration → Account client: calls
transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java - Account client → Account API: requests balances
- Transfer orchestration → Kafka events: publishes events
transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java - Kafka events → Fraud event handler: delivers events
- Fraud event handler → Fraud checks: dispatches checks
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionEventConsumer.java - Fraud checks → Fraud account client: fetches balance
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java - Fraud account client → Account API: requests balance
- Fraud checks → Fraud state: reads and writes
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java - Fraud checks → Kafka events: publishes results
fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java - Payment API → Payment processing: calls
payment-service/src/main/java/com/hamilton/paymentservice/controller/PaymentController.java - Payment processing → Razorpay: creates orders
payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java - Razorpay → Payment processing: sends webhooks
payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java - Payment processing → Payment records: reads and writes
payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java - Payment processing → Kafka events: publishes outcomes
payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java - Kafka events → Notifications: delivers events
notification-service/src/main/java/com/hamilton/notificationservice/service/NotificationService.java