burl
// ~/projects/burl.ts
const burl = {
status: "prototype",
started: "2026-10-01",
tags: ["typescript", "node", "aws", "opentofu"],
};Several payment providers each hold their own record of the same money, and they never quite agree. burl observes that money across providers and never moves it. It reconciles the records into one ledger and sorts the disagreements: a fee, a partial refund, a timing gap, or a real loss.
How it works
It’s headless. A merchant’s software integrates through a versioned API, with a command-line client as the reference integrator. Every transaction’s entries sum to zero when it’s committed. It runs on AWS: functions over HTTP, and a store with no public address that only a function, or a bastion holding no key, can reach.
Why
- Event-driven patterns, practised for real: outbox, idempotent consumers, sagas.
- The cloud underneath: AWS, run as a system that’s torn down whenever work stops and rebuilt from code alone.
Where it stands
Pre-MVP, at v0.4.0. The deployment path, the store and the ledger are done, and the ops view (dashboard and fault alarms) is in progress. Next comes ingestion, with the first provider’s records arriving as files and the merchant’s through the API, then reconciliation itself.