Production-grade fintech platform built with hexagonal architecture, event sourcing, and Kubernetes-first development workflow.
⚠️ Not production-ready: This is a learning/portfolio platform. It is not security-audited and must not be used to process real money.
- Start PowerShell as Administrator
- Connect to K3s:
.\scripts\k3s-connect.ps1 - Start backend:
tilt up --stream=true
- Start dashboard (separate terminal):
cd dashboard Copy-Item .env.example .env npm install npm run dev
.\infrastructure\local\setup-local.ps1
tilt up --stream=true- Copy
dashboard/.env.exampletodashboard/.envand configure values - Never commit
.envfiles
- Java 21 (Virtual Threads)
- Spring Boot 3.2+
- PostgreSQL 16 (Event Store)
- Redis (Caching)
- Kafka (Event Streaming)
- K3s / k3d (Kubernetes)
- Linkerd (Service Mesh)
- nginx-ingress (Ingress Controller)
- Grafana Alloy (Observability)
- Tilt (Development)
- React + TypeScript
- Vite
Hexagonal Architecture (Ports & Adapters) with:
- Domain Layer: Pure Java, zero framework dependencies
- Application Layer: Use cases, command/query handlers
- Infrastructure Layer: Database, messaging, external APIs
Event Sourcing for ledger/account state with CQRS read models.
See docs/ARCHITECTURE.md for detailed explanations.
prometheus/
├── services/
│ └── account-service/
│ └── src/main/java/com/prometheus/account/
│ ├── api/ # REST controllers
│ ├── application/ # Use cases, handlers
│ ├── domain/ # Business logic (pure Java)
│ │ ├── model/ # Aggregates, Entities, Value Objects
│ │ ├── event/ # Domain Events
│ │ └── service/ # Domain Services
│ └── infrastructure/ # DB, Redis, Kafka adapters
│
├── dashboard/ # React frontend
│
├── k8s/
│ ├── base/ # Shared Kubernetes manifests
│ └── overlays/
│ ├── local/ # Local overrides
│ └── prod/ # Production overrides
│
├── infrastructure/
│ ├── local/ # k3d cluster config
│ ├── linkerd/ # Service mesh
│ ├── nginx-ingress/ # Ingress controller
│ └── grafana-alloy/ # Observability
│
└── scripts/ # Utility scripts
- Docker Desktop (8GB+ RAM)
kubectl,helm,tilt- Node.js (for dashboard)
- WSL2 + K3s OR k3d
- Tilt UI:
http://localhost:10350 - Dashboard:
http://localhost:5173(Vite default) - API:
http://localhost:8082/api/v1
# Backend (from service directory)
./gradlew test
# Frontend (from dashboard directory)
npm test- Architecture & Design Decisions - Detailed rationale for architectural choices
- Implementation Plan - Phase 1 roadmap
- Phase 2 Plan - Core Banking & Payments
- User Flows - Application user flows
- Core Domain Guide - Domain model explanation
- Create a feature branch
- Make changes following existing patterns
- Ensure tests pass
- Submit a pull request
Licensed under the Apache License 2.0. See LICENSE.