Docker Compose

Detailed breakdown of the four core infrastructure stacks.

Infrastructure Stacks

The Arya Banking platform is orchestrated via four modular Docker Compose files located in the compose/ directory.


1. Event Streaming (kafka.yml)

Provides the Apache Kafka backbone for event-driven communication.

This stack runs Kafka in **KRaft mode**, eliminating the need for a separate Zookeeper ensemble.
ServiceImageInternal PortHost Port
Kafkacp-kafka290929092
Schema Registrycp-schema-registry80818081
Kafka Connectcp-kafka-connect80828082

Listener Architecture

Kafka is configured with multiple listeners to support both internal (container) and external (host) clients:

  • PLAINTEXT_INTERNAL: kafka:29092 (Used by Docker microservices)
  • PLAINTEXT_EXTERNAL: localhost:9092 (Used for local IDE debugging)

2. Identity & Access (keycloak.yml)

Handles Authentication and Authorization via Keycloak.

ServiceImageInternal PortHost Port
PostgreSQLpostgres:1554325432
Keycloakkeycloak:26.0.280805433

{{% alert icon="๐Ÿ”’" context="warning" %}} Keycloak is configured with Argon2id password hashing by default. This is the current OWASP-recommended algorithm for secure credential storage. {{% /alert %}}


3. Secrets Management (vault.yml)

Secures sensitive configuration (DB passwords, client secrets) using HashiCorp Vault.

  • Mode: Filesystem storage (Dev mode)
  • UI: Enabled at http://localhost:8091/ui
  • Port: 8091 -> 8200
Vault starts in a **sealed** state. It must be manually unsealed after every container restart.

4. Platform Services (platform.yml)

Orchestrates the Spring Cloud infrastructure components.

ServiceImagePortDescription
Service Registryarya-banking-service-registry8761Eureka Server
Config Serverarya-banking-config-server8090Spring Cloud Config
API Gatewayarya-banking-api-gateway8085Spring Cloud Gateway

Network Map

All services are joined to the arya-banking-net network: