# snehalshinde11/banking-app-docker-compose architecture

> Architecture diagram of the GitHub repository snehalshinde11/banking-app-docker-compose, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/snehalshinde11/banking-app-docker-compose
- Repository: https://github.com/snehalshinde11/banking-app-docker-compose

## Overview

This repository provides three small banking HTTP services: account lookup, transaction listing, and notification retrieval/creation. The sampled implementations keep their data in process memory; no service-to-service calls or end-to-end banking workflow are evidenced, so the services are shown as independent APIs. The README describes Docker Compose, Swarm, and image versions, but does not establish runtime request routing. The transaction controller is the only distinct internal layer shown; other implementation details are grouped at their service entry point.

Main entry points: [`transaction-service/src/main/java/com/banking/transaction/TransactionController.java`](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/transaction-service/src/main/java/com/banking/transaction/TransactionController.java) (Transaction controller), [`account-service/server.js`](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/account-service/server.js) (Account service), [`notification-service/app.py`](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/notification-service/app.py) (Notification service), [`transaction-service/src/main/java/com/banking/transaction/TransactionApplication.java`](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/transaction-service/src/main/java/com/banking/transaction/TransactionApplication.java) (Transaction application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_accounts["Account API"]
  node_account_service["Account service<br/>[server.js]"]
end

subgraph group_transactions["Transaction API"]
  node_transaction_app["Transaction application"]
  node_transaction_controller["Transaction controller"]
end

subgraph group_notifications["Notification API"]
  node_notification_service["Notification service<br/>[app.py]"]
end

node_client(("API client"))
node_monitor(("Health monitor"))

node_client -->|"requests accounts"| node_account_service
node_account_service -->|"returns accounts"| node_client
node_client -->|"requests transactions"| node_transaction_controller
node_transaction_controller -->|"returns transactions"| node_client
node_client -->|"requests notifications"| node_notification_service
node_notification_service -->|"returns notifications"| node_client
node_monitor -->|"checks health"| node_account_service
node_monitor -->|"checks health"| node_transaction_controller
node_monitor -->|"checks health"| node_notification_service
node_transaction_app -->|"hosts routes"| node_transaction_controller

click node_account_service "https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/account-service/server.js"
click node_transaction_app "https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/transaction-service/src/main/java/com/banking/transaction/TransactionApplication.java"
click node_transaction_controller "https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/transaction-service/src/main/java/com/banking/transaction/TransactionController.java"
click node_notification_service "https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/notification-service/app.py"

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_account_service,node_client toneBlue
class node_transaction_app,node_transaction_controller toneAmber
class node_notification_service toneMint
class node_monitor toneIndigo
```

## Components

### Account API

- [Account service](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/account-service/server.js): `account-service/server.js`

### Transaction API

- [Transaction application](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/transaction-service/src/main/java/com/banking/transaction/TransactionApplication.java): `transaction-service/src/main/java/com/banking/transaction/TransactionApplication.java`
- [Transaction controller](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/transaction-service/src/main/java/com/banking/transaction/TransactionController.java): `transaction-service/src/main/java/com/banking/transaction/TransactionController.java`

### Notification API

- [Notification service](https://github.com/snehalshinde11/banking-app-docker-compose/blob/main/notification-service/app.py): `notification-service/app.py`

### Other components

- **API client**
- **Health monitor**

## Connections

- API client → Account service: requests accounts
- Account service → API client: returns accounts
- API client → Transaction controller: requests transactions
- Transaction controller → API client: returns transactions
- API client → Notification service: requests notifications
- Notification service → API client: returns notifications
- Health monitor → Account service: checks health
- Health monitor → Transaction controller: checks health
- Health monitor → Notification service: checks health
- Transaction application → Transaction controller: hosts routes
