Overview
High-level architecture and repository structure of the arya-banking-infra project.
Introduction
The arya-banking-infra repository is the single source of truth for all infrastructure in the Arya Banking platform. It contains no application code — only Docker Compose definitions, configuration files, and automation scripts.
Every third-party service (Kafka, Keycloak, Vault) and every platform service (Service Registry, Config Server, API Gateway) is orchestrated from this central location.
Repository Structure
The infrastructure is organized into a modular set of Docker Compose files, allowing you to start individual concerns or the entire stack as needed.
arya-banking-infra/
├── Makefile ← Single entry point for all operations
├── compose/
│ ├── kafka.yml ← Kafka + Schema Registry + Kafka Connect
│ ├── keycloak.yml ← PostgreSQL + Keycloak
│ ├── platform.yml ← Service Registry + Config Server + API Gateway
│ ├── vault.yml ← HashiCorp Vault
│ └── vault/
│ └── config/
│ └── vault.hcl ← Vault server configuration
├── scripts/
│ ├── vault-unseal.ps1 ← Vault initialisation and unsealing
│ └── vault/
│ └── init/
│ └── keys.txt (gitignored)← Generated unseal keys + root token
└── .gitignore
Core Components
The stack is divided into four primary concerns:
| Component | Concern | Key Services |
|---|---|---|
| Event Streaming | Messaging & Schemas | Apache Kafka, Schema Registry |
| Identity & Access | IAM | Keycloak, PostgreSQL |
| Secrets Management | Security | HashiCorp Vault |
| Spring Platform | Service Coordination | Eureka, Config Server, API Gateway |
Shared Network
All containers communicate over a dedicated external bridge network named arya-banking-net.
# Create the network manually
docker network create arya-banking-net
# Or use the provided Makefile
make network-create
Every service in the platform references others using their container hostname (e.g., http://keycloak:8080 or kafka:29092).