Fintech, 2026
Ledgerline
A double-entry ledger that replaced a payments company's balance tables.
- Sector
- Fintech
- Year
- 2026
- Duration
- 7 months
- Team
- 4 engineers
- Focus
- Architecture
Architecture, 7 components
- Client
- Service
- Queue or log
- Data store
- External system
The problem
Balances were stored as mutable columns and updated from six services. Reconciliation ran nightly and finance corrected discrepancies by hand. The company needed a single source of truth before it could launch in new markets.
What we built
- 01Modelled money movement as immutable, balanced journal entries in PostgreSQL, enforced with constraints and serializable transactions.
- 02Put one Node.js ledger service in front of the data, with idempotency keys on every write.
- 03Published ledger events through a transactional outbox so downstream systems could not drift.
- 04Migrated historical balances in replayable batches, with parity checks against the old tables.
What changed.
- journal entries written per day
- 4.2M
- unreconciled balances since launch
- 0
- p99 write latency
- 38 ms
Stack
- Node.js
- TypeScript
- PostgreSQL
- Prisma
- Kafka