← All writing

Fintech

The Architectural Challenges of Real-Time, Multi-Currency Accounting

Engineering double-entry ledgers across dozens of currencies, balancing ACID constraints against eventual consistency, and preventing database lock contention.

4 October 2026 · 11 min read

A ledger is the source of truth for a payments business. In one currency at modest volume it is a solved problem. Across dozens of currencies, in real time, it becomes one of the hardest engineering problems in the stack.

Double-entry across currencies

Every movement must balance, but an FX conversion touches multiple currency positions, rates and fee accounts at once. The model must represent these as atomic, balanced entries, never as adjustments patched in afterwards.

ACID versus eventual consistency

Strict ACID guarantees keep balances correct but limit throughput. Eventual consistency scales but risks spending money that is not there. The answer is usually hybrid: strong consistency for balance-affecting writes, asynchronous projections for reporting.

Lock contention on hot accounts

Pooled, fee and settlement accounts receive a share of almost every transaction and become contention hotspots. Sharded sub-accounts, batched postings and append-only designs keep throughput high without compromising correctness.