Back to projects

Digital bank

Auronix

End-to-end financial platform with accounts, transfers, and payment requests.

Technical vision

Digital bank oriented to financial consistency

Auronix combines Java/Spring Boot, Angular, and PostgreSQL with messaging, SSE, Redis Pub/Sub, and declarative infrastructure.

ImpactOutbox

persistence and messaging without loss or duplication of financial events

Financial core

Accounts, transfers, and payment requests are protected by transactions and PostgreSQL constraints.

Financial events

Transactional Outbox processes batches with FOR UPDATE SKIP LOCKED and idempotent consumers by eventId.

Realtime and delivery

SSE with Redis Pub/Sub propagates balances and transactions across multiple replicas.

Execution flow

Main flow

Digital bank oriented to financial consistency

Auronix combines Java/Spring Boot, Angular, and PostgreSQL with messaging, SSE, Redis Pub/Sub, and declarative infrastructure.

LOCK ACQUIRED -> BALANCE VALIDATED -> COMMIT -> EVENT DELIVERED

  1. 01

    Operation enters through the Angular client

    The financial action reaches the Spring Boot backend and goes through domain validation before movement.

  2. 02

    Consistency is resolved in the database

    Pessimistic locks in deterministic order, balance revalidation, and constraints reduce risk in concurrent transfers.

  3. 03

    Events are published safely

    The Outbox separates persistence from messaging to avoid inconsistency between stored data and financial events.

Engineering decisions

Architecture

Transactional Outbox

The Outbox avoids inconsistencies between persistence and messaging in financial operations.

Deterministic concurrency

Pessimistic locks in deterministic order and balance revalidation protect simultaneous transfers.

Verifiable infrastructure

Terraform, VPC, EKS, Kubernetes, health checks, graceful shutdown, Docker Compose, kubeconform, CI/CD, and Micrometer shape delivery.

Risk controls

Reliability

Event loss or duplication

Idempotent consumers by eventId and batch processing with FOR UPDATE SKIP LOCKED reduce duplicate effects.

Out-of-sync clients

SSE with Redis Pub/Sub reduces polling and keeps clients synchronized across replicas.

Stack

Application

  • Java
  • Spring Boot
  • Angular

Data and events

  • PostgreSQL
  • RabbitMQ
  • Redis Pub/Sub
  • SSE

Infrastructure

  • Terraform
  • EKS
  • Kubernetes
  • Docker Compose
  • kubeconform
  • Micrometer

Outcome

Financial consistency with asynchronous processing

The project concentrates concurrency, messaging, realtime, and infrastructure decisions for a financial platform.

persistence and messaging without loss or duplication of financial events
Outbox

Next project

X Tube

Event-driven pipeline for media processing with Go, SQS, S3, FFmpeg, and Kafka.

Next project