Skip to content
@Event-Based-Banking-Application

Event Based Banking Application

Event-driven microservices platform built with Spring Boot, Kafka, Keycloak, and Docker. 7 microservices, cloud-native architecture.

Event Based Banking Application

An event-driven microservices platform for digital banking built with Spring Boot 3, Apache Kafka, Keycloak IAM, and Docker. Cloud-native, database-per-service architecture designed for scale, security, and maintainability.

Spring Boot Spring Cloud Java Apache Kafka MongoDB Keycloak HashiCorp Vault Netflix Eureka Docker


Overview

The Arya Banking platform demonstrates production-grade Spring Boot microservices using event-driven architecture with Apache Kafka for asynchronous inter-service communication. The platform includes 7 microservices, a centralized Spring Cloud Config Server, Netflix Eureka service discovery, Spring Cloud Gateway as a reactive API gateway, Keycloak for OAuth2 / OpenID Connect authentication, and HashiCorp Vault for secrets management.

Architecture Highlights

  • Event-driven communication — Apache Kafka with Avro schemas and Confluent Schema Registry
  • Database-per-service — Each service owns its MongoDB instance
  • Service discovery — Netflix Eureka for dynamic routing and load balancing
  • Centralized configuration — Spring Cloud Config Server backed by Git
  • Security — OAuth2, JWT, Keycloak IAM, Vault-based secrets injection
  • Containerized — Full Docker Compose orchestration with 7+ containers

Tech Stack

Category Technologies
Languages & Frameworks Java 17, Spring Boot 3.5, Spring Cloud 2025.0.0, Project Reactor (WebFlux)
Messaging & Events Apache Kafka, Avro, Confluent Schema Registry
Data Stores MongoDB, Redis (caching)
Security & IAM Keycloak 26, OAuth2, OpenID Connect, JWT, HashiCorp Vault
Service Infrastructure Netflix Eureka, Spring Cloud Gateway, Spring Cloud Config
DevOps & Containers Docker, Docker Compose, GitHub Actions, Maven
Observability SpringDoc OpenAPI, JaCoCo, SonarQube, SpotBugs

Repositories

Documentation & Infrastructure

Repo Description
arya-banking Documentation site — architecture guides, API reference, local development setup, and system design
arya-banking-infra Infrastructure orchestration — Docker Compose stacks for Kafka, Keycloak, Vault, Redis, and platform services

Platform Infrastructure (Docker)

Repo Port Role
arya-banking-service-registry 8761 Netflix Eureka — service discovery and health monitoring
arya-banking-config-server 8090 Spring Cloud Config Server — centralized Git-backed configuration
arya-banking-api-gateway 8085 Spring Cloud Gateway — reactive API gateway with JWT validation

Business Services

Repo Port Role
arya-banking-user-service 8086 User Service — registration, profile management, security details, account locking
arya-banking-auth-service 8087 Auth Service — Keycloak identity bridge, OAuth2 client credentials, JWT issuance
arya-banking-admin-service 8089 Admin Service — Vault AppRole management, Keycloak realm administration, HCL policy management

Shared & Config

Repo Role
arya-banking-common Common library — shared domain models, Kafka/Avro event schemas, MongoDB entities, MapStruct mappers, exception framework
arya-banking-configs Configuration repository — centralized Spring Cloud Config property files for all services

Quick Start

# Clone infrastructure repo
git clone https://github.com/Event-Based-Banking-Application/arya-banking-infra.git
cd arya-banking-infra

# Start all infrastructure (Kafka, Keycloak, Vault, Redis, Eureka, Config Server, Gateway)
make up

# Unseal Vault for secrets access
make vault-unseal

➡️ Full Local Development Guide
➡️ Platform Overview
➡️ System Architecture


Documentation

Comprehensive documentation including architecture decisions, API references, security model, and deployment guides:

Page Description
Platform Overview High-level architecture, tech stack, and service responsibilities
System Architecture Detailed component diagram, data flow, and deployment topology
Security Model OAuth2 flows, JWT validation, Keycloak realms, Vault policies
Inter-Service Communication Kafka event flows, Feign clients, OAuth2 M2M authentication
Infrastructure Stack Docker Compose stacks, networking, port reference
Local Development Setup Step-by-step guide to run the full platform locally
API Gateway Reactive routing, JWT validation, service discovery integration
User Service User registration flow, profile management, account security
Auth Service Keycloak integration, OAuth2 client management, identity bridge
Admin Service Vault AppRole management, Keycloak administration, HCL policies

Related Projects


License

This project is available as an open-source reference architecture for Spring Boot microservices and event-driven systems.

Pinned Loading

  1. arya-banking arya-banking Public

    Documentation site for the Arya Banking event-driven microservices platform — architecture guides, API reference, local development setup, and system design

    TypeScript

  2. arya-banking-infra arya-banking-infra Public

    Docker Compose orchestration for the Arya Banking microservices platform — Kafka, Keycloak, Vault, Redis, Eureka, Config Server, and API Gateway stacks

    PowerShell

  3. arya-banking-admin-service arya-banking-admin-service Public

    Admin service for the Arya Banking platform — Vault AppRole management, Keycloak realm administration, HCL policy management, and infrastructure automation

    Java

  4. arya-banking-auth-service arya-banking-auth-service Public

    Authentication service for the Arya Banking platform — Keycloak identity bridge, OAuth2 client credentials, JWT token management, and Feign client communication

    Java

  5. arya-banking-user-service arya-banking-user-service Public

    User microservice for the Arya Banking platform — registration, profile management, security details, account locking, and Kafka event publishing

    Java

  6. arya-banking-common arya-banking-common Public

    Shared common library for the Arya Banking platform — domain models, Kafka/Avro event schemas, MongoDB entities, MapStruct mappers, and exception framework

    Java

Repositories

Showing 10 of 14 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…