Technology

Enterprise-grade technology for regulated financial products

Kotlin, Spring Boot, PostgreSQL, GCP — a mature, maintainable stack chosen for reliability, auditability and team productivity.

Backend Core

Kotlin 2.0Java 21Spring Boot 3.3.5Spring MVC (sync)Flyway Migrations

Data Layer

PostgreSQL 16JSONB for audit eventsFlyway schema managementRedis (optional cache)

Cloud Infrastructure

GCP Cloud RunCloud SQLSecret ManagerArtifact RegistryCloud Build

Security

JWT authenticationRole-based access patternsSecret managementIsolated environments

Observability

Micrometer + PrometheusStructured JSON loggingX-Correlation-Id tracingHealth endpoints

Reporting Engine

PDF generationCSV / JSON / XML exportsTemplate-based documentsImmutable registry

Developer Tooling

Docker Compose local infraMakefile commandsSwagger / OpenAPIArchitecture Decision Records

API Design

REST / JSON APIsAPI versioning (/api/v1)Consistent error handlingPagination and filtering
Design Principles

Architecture decisions that matter

Modular Monolith over Microservices

Clear domain boundaries within a single deployable unit. The right trade-off for a regulated product where consistency, transaction safety and operational simplicity matter more than independent scaling.

Ports and Adapters over Direct Integration

All external systems are accessed through port interfaces. This isolates the domain from infrastructure concerns and makes core banking, payment rail or compliance provider swaps achievable without domain model changes.

PostgreSQL-First over Multi-Database

A single PostgreSQL instance with logical separation per concern. Simpler operations, easier backups, ACID guarantees across domains and proven reliability at financial-grade workloads.

Sync over Async by Default

Spring MVC with synchronous request handling for predictability and debuggability. Async patterns introduced only where explicitly needed — payment rail callbacks, event streaming and background processing.

Interested in the technical foundation?