Skip to content

Divyanshupandey007/abcbank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏦 ABC Bank Microservices Application

Java Spring Boot Spring Cloud Docker

📖 Project Overview

This project is a production-ready Microservices Banking Application built using Java, Spring Boot, and Spring Cloud. It demonstrates the transition from monolithic to cloud-native architecture, strictly adhering to the 15-Factor App methodology.

🚀 Kubernetes Version:
To see the Kubernetes and Helm implementation of this project, please switch to the k8s-implementation branch.


🏗️ Architecture & Features

This project implements a complete microservices landscape including:

🔹 Core Business Services

  • Accounts Microservice: Manages customer bank accounts.
  • Cards Microservice: Handles credit and debit card operations.
  • Loans Microservice: Manages loan processing and data.

🔹 Spring Cloud Infrastructure

  • Config Server: Centralized configuration management backed by Git.
  • Service Discovery: Netflix Eureka for dynamic service registration.
  • API Gateway: Spring Cloud Gateway for routing, filtering, and cross-cutting concerns.
  • Resilience4j: Implementation of Circuit Breaker, Retry, and Rate Limiter patterns.

🔹 Observability & Monitoring (LGTM Stack)

  • Prometheus & Grafana: For metrics collection and visualization.
  • Loki & Alloy: For distributed log aggregation.
  • Tempo: For distributed tracing.

🔹 Security & Events

  • OAuth2 & OpenID Connect: Secured using Keycloak and Spring Security.
  • Event-Driven: Async communication using RabbitMQ and Spring Cloud Stream.

🛠️ Tech Stack

  • Java 21
  • Spring Boot 3.0 (with Spring BOM)
  • Spring Cloud 2022.0
  • Docker & Docker Compose
  • Maven

🚀 Getting Started (Docker Compose)

  1. Build the Project:

    mvn clean install -DskipTests

    (This creates the Docker images using the Jib plugin)

  2. Run with Docker Compose:

    docker-compose up -d
  3. Access Services:

    • Eureka Dashboard: http://localhost:8070
    • Gateway Server: http://localhost:8072
    • Grafana: http://localhost:3000

👤 Author

Divyanshu Pandey

About

Microservices based banking application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages