Platform Overview

High-level overview of the Arya Banking microservices platform.

What is Arya Banking?

Arya Banking is an event-driven microservices platform modelling the core backend of a digital banking application. It is built around a service mesh of independently deployable Spring Boot services coordinated through Spring Cloud infrastructure.

Stack: Spring Boot 3.5.4 · Spring Cloud 2025.0.0 · Java 17 · MongoDB · Kafka · Keycloak · HashiCorp Vault · Eureka

🏗️ Core Architecture & Guides

Explore the foundational principles and technical guides that power the Arya Banking platform:

GuideDescription
System ArchitectureComponent roles, data flow patterns, and network layout.
Inter-service CommunicationDetails on Feign, OAuth2 (M2M), and Kafka event flows.
Security ModelComprehensive overview of Keycloak, Vault, and JWT processing.
Infrastructure StackDocker orchestration, networking, and platform setup.
Local Development SetupStep-by-step guide to running the full platform locally.

🧩 Microservice Documentation

Each service has its own dedicated documentation covering its specific logic, APIs, and configuration:

ServiceDescriptionDocs
Common LibraryShared domain models, Kafka/Avro schemas, and exceptionsView Docs →
API GatewayReactive entry point, JWT validation, and request routingView Docs →
User ServiceMulti-step registration and profile managementView Docs →
Auth ServiceIdentity bridge and Keycloak user managementView Docs →
Admin ServiceInfrastructure administration and secret provisioningView Docs →
Config ServerCentralized Spring Cloud configuration layerView Docs →
Service RegistryEureka service discovery serverView Docs →

Repository Map

The platform is distributed across 9 interconnected repositories:

Text code-highlight
Event-Based-Banking-Application/
├── arya-banking/                        ← Documentation site (Hugo)
├── arya-banking-infra/                  ← Docker Compose infra (Kafka, Keycloak, Vault)
├── arya-banking-configs/                ← Centralized Git-backed configuration
├── arya-banking-common/                 ← Shared Maven library (GitHub Packages)
├── arya-banking-service-registry/       ← Eureka Server (Discovery)
├── arya-banking-config-server/          ← Spring Cloud Config Server
├── arya-banking-api-gateway/            ← Reactive entry point
├── arya-banking-user-service/           ← User domain
├── arya-banking-auth-service/           ← Identity bridge
└── arya-banking-admin-service/          ← Infrastructure admin

Quick Reference

ServicePortDescription
API Gateway8085Primary entry point (Docker)
User Service8086User domain (Host)
Auth Service8087Identity bridge (Host)
Admin Service8089Infrastructure admin (Host)
Config Server8090Centralized configuration (Docker)
Vault8091Secrets management + UI (Docker)
Eureka8761Service discovery dashboard (Docker)
Kafka9092 / 29092Messaging — external / internal (Docker)
Keycloak5433IAM admin + auth (Docker)
  • Shared Network: arya-banking-net
  • Infrastructure Runs In: Docker containers via arya-banking-infra
  • Business Services Run On: Host via mvn spring-boot:run
  • Secrets: HashiCorp Vault with AppRole authentication (local vault-credentials.yml)
overviewarchitecturemicroservices