# hamilton2959/fraud-detection-in-digital-banking-system architecture

> Architecture diagram of the GitHub repository hamilton2959/fraud-detection-in-digital-banking-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/hamilton2959/fraud-detection-in-digital-banking-system
- Repository: https://github.com/hamilton2959/fraud-detection-in-digital-banking-system

## Overview

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: [`payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java`](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java) (Payment processing), [`api-gateway/src/main/java/com/hamilton/apigateway/ApiGatewayApplication.java`](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/api-gateway/src/main/java/com/hamilton/apigateway/ApiGatewayApplication.java) (API gateway), [`transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java`](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java) (Transfer orchestration), [`fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java`](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java) (Fraud checks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["API access"]
  node_gateway["API gateway"]
end

subgraph group_accounts["Accounts"]
  node_account_api["Account API"]
  node_account_logic["Account operations"]
  node_account_store[("Account records")]
  node_account_events["Account event handler"]
end

subgraph group_transfers["Transfers"]
  node_transaction_api["Transaction API"]
  node_transaction_logic["Transfer orchestration"]
  node_transaction_store[("Transaction records")]
  node_account_client["Account client"]
end

subgraph group_risk["Fraud detection"]
  node_fraud_handler["Fraud event handler"]
  node_fraud_logic["Fraud checks"]
  node_fraud_account_client["Fraud account client"]
  node_fraud_state[("Fraud state")]
end

subgraph group_payments["Payments and notices"]
  node_payment_api["Payment API"]
  node_payment_logic["Payment processing"]
  node_payment_store[("Payment records")]
  node_notifications["Notifications"]
end

node_client(("API client"))
node_event_bus["Kafka events"]
node_razorpay["Razorpay"]

node_client -.->|"sends requests"| node_gateway
node_gateway -.->|"routes requests"| node_account_api
node_gateway -.->|"routes requests"| node_transaction_api
node_gateway -.->|"routes requests"| node_payment_api
node_account_api -->|"calls"| node_account_logic
node_account_logic -->|"reads and writes"| node_account_store
node_account_events -.->|"dispatches events"| node_account_logic
node_transaction_api -->|"calls"| node_transaction_logic
node_transaction_logic -->|"reads and writes"| node_transaction_store
node_transaction_logic -->|"calls"| node_account_client
node_account_client -.->|"requests balances"| node_account_api
node_transaction_logic -->|"publishes events"| node_event_bus
node_event_bus -.->|"delivers events"| node_fraud_handler
node_fraud_handler -.->|"dispatches checks"| node_fraud_logic
node_fraud_logic -->|"fetches balance"| node_fraud_account_client
node_fraud_account_client -.->|"requests balance"| node_account_api
node_fraud_logic -->|"reads and writes"| node_fraud_state
node_fraud_logic -->|"publishes results"| node_event_bus
node_payment_api -->|"calls"| node_payment_logic
node_payment_logic -->|"creates orders"| node_razorpay
node_razorpay -->|"sends webhooks"| node_payment_logic
node_payment_logic -->|"reads and writes"| node_payment_store
node_payment_logic -->|"publishes outcomes"| node_event_bus
node_event_bus -->|"delivers events"| node_notifications

click node_gateway "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/api-gateway/src/main/java/com/hamilton/apigateway/ApiGatewayApplication.java"
click node_account_api "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/controller/AccountController.java"
click node_account_logic "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/service/AccountService.java"
click node_account_store "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/repository/AccountRepository.java"
click node_account_events "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/service/AccountEventConsumer.java"
click node_transaction_api "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/controller/TransactionController.java"
click node_transaction_logic "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java"
click node_transaction_store "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/repository/TransactionRepository.java"
click node_account_client "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/client/AccountServiceClient.java"
click node_fraud_handler "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionEventConsumer.java"
click node_fraud_logic "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java"
click node_fraud_account_client "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/client/AccountServiceClient.java"
click node_fraud_state "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java"
click node_payment_api "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/payment-service/src/main/java/com/hamilton/paymentservice/controller/PaymentController.java"
click node_payment_logic "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java"
click node_payment_store "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/payment-service/src/main/java/com/hamilton/paymentservice/repository/PaymentRepository.java"
click node_notifications "https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/notification-service/src/main/java/com/hamilton/notificationservice/service/NotificationService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gateway,node_client toneBlue
class node_account_api,node_account_logic,node_account_store,node_account_events toneAmber
class node_transaction_api,node_transaction_logic,node_transaction_store,node_account_client toneMint
class node_fraud_handler,node_fraud_logic,node_fraud_account_client,node_fraud_state toneRose
class node_payment_api,node_payment_logic,node_payment_store,node_notifications,node_event_bus,node_razorpay toneIndigo
```

## Components

### API access

- [API gateway](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/api-gateway/src/main/java/com/hamilton/apigateway/ApiGatewayApplication.java): `api-gateway/src/main/java/com/hamilton/apigateway/ApiGatewayApplication.java`

### Accounts

- [Account API](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/controller/AccountController.java): `account-service/src/main/java/com/hamilton/accountservice/controller/AccountController.java`
- [Account operations](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/service/AccountService.java): `account-service/src/main/java/com/hamilton/accountservice/service/AccountService.java`
- [Account records](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/repository/AccountRepository.java): `account-service/src/main/java/com/hamilton/accountservice/repository/AccountRepository.java`
- [Account event handler](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/account-service/src/main/java/com/hamilton/accountservice/service/AccountEventConsumer.java): `account-service/src/main/java/com/hamilton/accountservice/service/AccountEventConsumer.java`

### Transfers

- [Transaction API](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/controller/TransactionController.java): `transaction-service/src/main/java/com/hamilton/transactionservice/controller/TransactionController.java`
- [Transfer orchestration](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java): `transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java`
- [Transaction records](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/repository/TransactionRepository.java): `transaction-service/src/main/java/com/hamilton/transactionservice/repository/TransactionRepository.java`
- [Account client](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/transaction-service/src/main/java/com/hamilton/transactionservice/client/AccountServiceClient.java): `transaction-service/src/main/java/com/hamilton/transactionservice/client/AccountServiceClient.java`

### Fraud detection

- [Fraud event handler](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionEventConsumer.java): `fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionEventConsumer.java`
- [Fraud checks](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java): `fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java`
- [Fraud account client](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/client/AccountServiceClient.java): `fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/client/AccountServiceClient.java`
- [Fraud state](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java): `fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java`

### Payments and notices

- [Payment API](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/payment-service/src/main/java/com/hamilton/paymentservice/controller/PaymentController.java): `payment-service/src/main/java/com/hamilton/paymentservice/controller/PaymentController.java`
- [Payment processing](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java): `payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java`
- [Payment records](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/payment-service/src/main/java/com/hamilton/paymentservice/repository/PaymentRepository.java): `payment-service/src/main/java/com/hamilton/paymentservice/repository/PaymentRepository.java`
- [Notifications](https://github.com/hamilton2959/fraud-detection-in-digital-banking-system/blob/master/notification-service/src/main/java/com/hamilton/notificationservice/service/NotificationService.java): `notification-service/src/main/java/com/hamilton/notificationservice/service/NotificationService.java`

### Other components

- **API client**
- **Kafka events**
- **Razorpay**

## Connections

- 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 (evidence: `account-service/src/main/java/com/hamilton/accountservice/controller/AccountController.java`)
- Account operations → Account records: reads and writes (evidence: `account-service/src/main/java/com/hamilton/accountservice/service/AccountService.java`)
- Account event handler → Account operations: dispatches events (evidence: `account-service/src/main/java/com/hamilton/accountservice/service/AccountEventConsumer.java`)
- Transaction API → Transfer orchestration: calls (evidence: `transaction-service/src/main/java/com/hamilton/transactionservice/controller/TransactionController.java`)
- Transfer orchestration → Transaction records: reads and writes (evidence: `transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java`)
- Transfer orchestration → Account client: calls (evidence: `transaction-service/src/main/java/com/hamilton/transactionservice/service/TransactionService.java`)
- Account client → Account API: requests balances
- Transfer orchestration → Kafka events: publishes events (evidence: `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 (evidence: `fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionEventConsumer.java`)
- Fraud checks → Fraud account client: fetches balance (evidence: `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 (evidence: `fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java`)
- Fraud checks → Kafka events: publishes results (evidence: `fraud-detection-service/src/main/java/com/hamilton/frauddetectionservice/event/FraudDetectionService.java`)
- Payment API → Payment processing: calls (evidence: `payment-service/src/main/java/com/hamilton/paymentservice/controller/PaymentController.java`)
- Payment processing → Razorpay: creates orders (evidence: `payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java`)
- Razorpay → Payment processing: sends webhooks (evidence: `payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java`)
- Payment processing → Payment records: reads and writes (evidence: `payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java`)
- Payment processing → Kafka events: publishes outcomes (evidence: `payment-service/src/main/java/com/hamilton/paymentservice/service/PaymentService.java`)
- Kafka events → Notifications: delivers events (evidence: `notification-service/src/main/java/com/hamilton/notificationservice/service/NotificationService.java`)
