A developer-first financial infrastructure API, built for scale, immutability, and speed.
Argent is a modern financial infrastructure system engineered to provide a robust Ledger, Wallet, and Transaction Engine. Designed with strict immutability, idempotent transaction guarantees, and deep environment scoping, Argent allows businesses to securely manage multi-tenant financial data across sandbox and production environments.
⚠️ Note: This project is actively developed. It is fully dockerized and ready for local testing but has not yet been deployed to a live production environment.
We engineered Argent to solve the hardest problems in financial tech: race conditions, data mutation, and environment bleed.
- Immutable Ledger Engine: Double-entry accounting where
LedgerEntryrecords are completely immutable. Backed by PostgreSQLBEFORE UPDATEandBEFORE DELETEtriggers to strictly enforce database-level immutability against malicious or accidental mutations. - Robust Transaction Engine: A polymorphic Strategy Pattern implementation supporting Deposits, Withdrawals, Transfers, Refunds, and Adjustments. Features built-in idempotency to prevent duplicate charging.
- Multi-Environment Scoping: Strict separation of data between
SANDBOXandPRODUCTION. The environment flows logically fromWallet→Account→LedgerEntryensuring API keys can never access out-of-scope data. - Role-Based Access Control (RBAC): Native JWT and API key authentication supporting
OWNER,ADMIN, andDEVELOPERroles for multi-tenant organizational access. - Caching & High Availability: Redis caching applied to balances to dramatically decrease DB load, coupled with smart cache invalidation upon ledger entry creation.
- Java 21 & Spring Boot 3.4.1
- Spring Security (JWT + API Keys)
- Spring Data JPA & Hibernate
- Flyway (Database migrations)
- PostgreSQL 16 (Primary Datastore)
- Redis 7 (Caching Layer)
- RabbitMQ 3 (Event Messaging)
- React 18 (via Vite)
- TypeScript
- Tailwind CSS (Utility-first styling)
- Zustand (Global state management)
- TanStack Query (Server state & data fetching)
- Docker & Docker Compose (Containerized micro-services)
- JUnit 5 / MockMvc / Testcontainers (180+ comprehensive backend tests)
- Vitest & React Testing Library (Frontend Component & Integration testing)
Getting the entire Argent infrastructure running on your local machine takes less than 5 minutes. The environment is entirely containerized using Docker Compose.
- Docker
- Docker Compose
-
Clone the repository:
git clone https://github.com/yourusername/argent.git cd argent -
Spin up the infrastructure:
# This will pull postgres, redis, rabbitmq, and build the backend/frontend containers docker-compose up --build -d -
Verify running containers:
docker-compose ps
-
Access the Application:
- Frontend Dashboard: http://localhost:3000
- Backend API: http://localhost:8080
- RabbitMQ Management: http://localhost:15672 (u: argent, p: devpassword)
Argent prioritizes extreme stability due to the critical nature of financial data.
- Backend: Over 180+ tests (Unit + Integration) covering the core Ledger and Transaction engines, asserting atomicity, isolation, and handling optimistic locking failures (
409 Conflict). Run via./gradlew test. - Frontend: Component tests and full mocked routing integration tests utilizing
vitestandjsdom.
While V1 provides a comprehensive Dashboard and API for ledger and wallet management, future versions will implement:
- Webhook Subscriptions: Asynchronous notifications for balance thresholds and transaction status changes.
- Idempotency Keys: Client-provided UUID headers for exact API retry safety.
- Advanced Reporting: Exporting general ledgers in various financial formats.
Argent is built by engineers passionate about highly resilient, developer-first tooling.