
This project is a fully functional banking platform built on a microservices architecture. It demonstrates real-world enterprise patterns including:
This project is a modern banking platform built using a microservices architecture with Spring Boot and Spring Cloud. It separates core financial operations into independent services such as authentication, account management, transactions, notifications, auditing, and loans. All requests are handled through a centralized API Gateway, ensuring secure access using JWT and clean routing across services.
The system follows a fully distributed microservices design, where each service is independently deployable and responsible for a single domain. Service discovery is handled via Eureka, allowing dynamic communication without hardcoded endpoints.
Authentication is implemented using JWT-based security, ensuring stateless and secure communication. The API Gateway acts as the single entry point, validating tokens and routing requests to downstream services.
The platform uses Apache Kafka for asynchronous communication. Critical operations like transactions trigger events that are consumed by notification and audit services, enabling loose coupling and scalability.
User authentication and authorization
Bank account creation and management
Deposit, withdrawal, and fund transfers
Loan management and processing
Real-time notifications and audit logging
The system includes Resilience4j circuit breakers to prevent cascading failures, along with distributed tracing (Zipkin) and metrics monitoring (Prometheus) for full system visibility and reliability.
Java 21, Spring Boot, Spring Cloud
Apache Kafka, PostgreSQL
Netflix Eureka, Spring Cloud Gateway
Resilience4j, Zipkin, Prometheus
Docker for infrastructure setup