Skip to content
Drams
Work/Case study 01·Halden Pay

A ledger that never loses a kobo

Client
Halden Pay
Industry
Fintech
Location
Lagos, Nigeria
Year
2025
Engagement
Dedicated team
Duration
7 months
Team
5 engineers, 1 product lead
Disciplines
Backend

Overview

Halden had outgrown the spreadsheet-and-cron-job ledger that powered its first year. We designed and built a double-entry ledger, reconciliation engine and settlement service that now moves money for over three thousand merchants.

Transactions a day
4.2M
p99 posting latency
38ms
Unreconciled entries since launch
0
The problem

Growth had turned reconciliation into a full-time job.

Halden's original system wrote balances directly to merchant rows. Every failed webhook or retried transfer meant a finance analyst hunting through logs. By the time they reached 1,000 merchants, three people spent their week reconciling, and month-end close took nine days.

The brief was clear: a source of truth for money that the finance team could trust without checking, and that engineering could extend without fear.

Architecture

System overview

Every movement of money is an immutable, balanced journal entry. Balances are derived, never stored as mutable state, which makes the ledger auditable by construction.

01 · Ingress

API Gateway

Idempotency keys, rate limits

Webhook Intake

Signed, deduplicated

02 · Core services

Ledger

Double-entry, append-only

Reconciliation

Matches bank statements hourly

Settlement

T+0 / T+1 payout batching

03 · Data

PostgreSQL

Serializable isolation

Event stream

Kafka, 30-day replay

04 · External

Bank rails

NIP, card schemes

Finance tools

Daily exports to ERP

Approach

Boring technology, unusually strict rules.

We chose PostgreSQL with serializable transactions over a specialised database. The team already knew it well and its guarantees were exactly what a ledger needs. Every write path is idempotent. Every entry must balance or the transaction aborts.

We migrated live, running the new ledger in shadow mode for six weeks and comparing every balance against production nightly before the cut-over. Merchants never noticed.

Twelve months later
Days to close the month
9 → 1
Transactions posted daily
4.2M
Ledger availability
99.995%
Analysts on manual recon
3 → 0

Stack

Languages

  • Go
  • TypeScript

Data

  • PostgreSQL 16
  • Kafka
  • Redis

Infrastructure

  • AWS
  • Terraform
  • Kubernetes

Observability

  • OpenTelemetry
  • Grafana
  • PagerDuty
Client

“They asked better questions about our business in the first week than our previous vendor did in two years. The platform they shipped is the reason we closed our Series A.”

Adaeze Okafor, COO, Halden Pay
Next case study02

Ama Health

Scheduling and patient records across a clinic network

app.amahealth.com/today
Osu Clinic · 3 doctors on shift
Wednesday, 14 May
Day ▾+ New appointment
Dr. Mensah
Dr. Owusu
Dr. Asante
08:00
09:00
10:00
11:00
12:00
13:00
Kofi Boateng
Follow-up
Abena Darko
Antenatal
Yaw Asamoah
Lab results
Efua Quaye
Consultation
Ama Serwaa
Paediatrics
Kwame Ofori
Follow-up
Akosua Nyarko
Minor procedure
Esi Appiah
Consultation
Nana Addo
Vaccination
Adwoa Mensah
Antenatal
Kojo Badu
Follow-up