t/ TALLY
THE ENGINEERING OF A CORRECT JOURNALThe Tally JournalPOSTGRES / TYPESCRIPT / SYNTHETIC RECORDS

POSTGRES FACTS / NESTJS API / REACT OPERATIONS

Every cent
has a history.

Keep the same ledger when a request races, a process dies, or the acknowledgement never arrives.

THE CORRECTNESS BOUNDARY↘
Exact amount strings→ BigInt / NUMERIC
Repeated request→ Same committed event
Changed payload→ Conflict, no new effect
Projection drift→ Verify, then rebuild

Immutable facts. Replaceable views.

FROM THE BOOKKEEPER'S DESK

A working study of
money, memory
& evidence.

ORIGINAL SOFTWARE
SYNTHETIC RECORDS
Recorded evidenceThis Vercel page presents saved local measurements and an actual console recording. The persistent interactive API is not hosted here. Every financial record is synthetic.

01 / PROVE THE BOUNDARY

Raw campaign results ↗

A retry is a recovery protocol.

Actual processes and HTTP

These controls inspect saved results from the actual fault campaign. They do not operate a live ledger on Vercel. One workspace, a globally serialized chain, and local Postgres; no replicated failover claim.

02 / PUT A BUDGET ON THE DECISION

The explanation survives
the rule change.

Each successful decision persists its exact input, rule version and result. Publishing stricter rules changes a new request, while an old request remains replayable under its original snapshot.

Client HTTP round trips include durable database writes. The clean-load profiles count all statuses. An intentionally blocked SQL query is reported separately and produces a deadline error, not an approval.

All latency samples and statuses ↗

Observed local HTTP latency

Concurrency Samples p99 Failures

A response deadline can leave commit status unknown to the caller. Retry the same request ID. This is not a production latency SLO or financial authorization service.

03 / KEEP UNCERTAINTY VISIBLE

Match what the evidence supports.
Review the rest.

Exact amount and currency narrow the candidates. Dates and normalized text help only when the best candidate is unambiguous in both directions. Competing records stay in an audited review queue.

The labeled fixture includes amount/date drift, formatting, typos, duplicate competition, ambiguity and missing counterparts. Selected synthetic accuracy is not evidence of real banking accuracy.

AUTOMATION / ABSTENTION

Manual resolution checks amount/currency compatibility, frozen snapshot membership, expected row version and unique ledger assignment. A reviewer can still choose the wrong economic match.

04 / FOLLOW THE COMMITTED FACTS

Post. Retry. Reject. Replay.

The authenticated local console posts a real journal, reuses its key, rejects a one-cent imbalance, changes a rule version, replays decisions, resolves an exception and inspects source health.

THE DATABASE OWNS THE WRITE

Permission is part of the invariant.

The application role can call the posting function and read facts, but cannot directly change journal rows or account balances. Constraints reject incomplete, unbalanced or currency-mismatched entries.

DATA HAS A VERSION AND A CLOCK

Unknown is a useful result.

Merchant catalog versions participate in cache keys. Synthetic feed monitoring distinguishes missing, stale, anomalous and future-dated observations; recent ingestion does not imply fresh source data.

THE LIMITS ARE PART OF THE DESIGN

A local proof, with clear gaps.

Persistent public backend hosting, tenant isolation, accounting policy, FX, backup/restore, replicated failover, distributed tracing and large-history replay remain unfinished or unmeasured.

Open the journal behind the number.