A modern, secure, scalable digital banking system built using Microservices, Event-Driven Architecture, and Cloud-Native principles.
π Live Demo β’ π Backend Docs β’ π Issues
VASTA Bank is a real-world inspired enterprise banking platform that simulates how modern banks are built today.
It is not a CRUD demo β it includes:
- Secure authentication
- Real money flow logic
- Kafka-based event processing
- Monitoring with Grafana & Prometheus
- Full frontend + backend + DevOps setup
Designed for:
- Backend / Full-Stack interviews
- Microservices learning
- System design demonstration
- FinTech-grade architecture understanding
βοΈ Full-stack (React + Spring Boot) βοΈ Microservices with real boundaries βοΈ Kafka event-driven communication βοΈ JWT RS256 security (bank-grade) βοΈ Dockerized end-to-end setup βοΈ Monitoring & observability βοΈ Production-style architecture
This project is fully Dockerized. You can run the entire banking system using one command.
- Docker
- Docker Compose
- Git
git clone https://github.com/Akash-Adak/VASTA-Bank.git
cd VASTA-Bank
docker-compose up -dβ³ First startup may take a few minutes.
- API Gateway
- Eureka Server
- Auth, User, Account, Transaction, Loan, Notification Services
- MySQL, Redis
- Kafka, Zookeeper
- Prometheus, Grafana
| Service | URL |
|---|---|
| Auth server | http://localhost:8081 |
| User server | http://localhost:8082 |
| Account server | http://localhost:8083 |
| Transaction server | http://localhost:8084 |
| Notification server | http://localhost:8085 |
| Loan server | http://localhost:8086 |
| Eureka Dashboard | http://localhost:8761 |
| Grafana | http://localhost:3000 |
| Prometheus | http://localhost:9090 |
docker-compose downFrontend Stack
- React
- Tailwind / CSS
- JWT-based auth flow
- Role-based UI
- Secure API consumption via Gateway
Features
- User registration & login
- Account dashboard
- Fund transfers
- Transaction history
- Loan application & tracking
- Admin panels (role-based)
| Service | Responsibility |
|---|---|
| API Gateway | Routing, JWT validation, rate limiting |
| Auth Service | Login, JWT (RS256), refresh tokens |
| User Service | Profile & KYC management |
| Account Service | Bank accounts & balances |
| Transaction Service | Transfers, validation, history |
| Loan Service | Loan lifecycle & EMI |
| Notification Service | Email / SMS / in-app alerts |
| Eureka Server | Service discovery |
- JWT Authentication (RS256)
- Role-Based Access Control
- Redis-backed token management
- Password hashing (BCrypt)
- Transaction OTP for high-value transfers
- Rate limiting & IP tracking
Kafka topics used:
transaction.eventsaccount.eventsloan.eventsnotification.eventsaudit.events
βοΈ Async processing βοΈ Loose coupling βοΈ High scalability
Monitoring Stack
- Prometheus β Metrics collection
- Grafana β Dashboards & alerts
- Spring Boot Actuator
Tracked Metrics
- Request latency
- Error rates
- Kafka consumer lag
- JVM memory & CPU
- Business metrics (transactions/sec)
- Dockerized microservices
- One-command startup
- Environment-isolated services
- Ready for Kubernetes migration
docker-compose up -d- Unit tests for business logic
- Integration tests between services
- DB transactions & pessimistic locking
- Retry & dead-letter queues in Kafka
Backend
- Java 17
- Spring Boot 3.x
- Spring Security
- Spring Cloud (Gateway, Eureka)
- Kafka
- MySQL
- Redis
Frontend
- React
- Tailwind / CSS
- Axios
- JWT Auth
DevOps
- Docker
- Docker Compose
- Prometheus
- Grafana
This project demonstrates:
- Real backend engineering skills
- Understanding of distributed systems
- Production-level security
- DevOps & monitoring knowledge
- End-to-end ownership mindset
Contributions, feedback, and reviews are welcome. If youβre an interviewer or reviewer β feel free to explore deeply.
MIT License







