A payment system that approves every transaction is useless. One that declines too many legitimate transactions loses customers. Fraud detection is a latency-sensitive classification problem: decide in under 100ms whether a transaction is fraudulent, using signals that fraudsters will actively try to evade.
The Signal Stack Fraud signals come from multiple layers:
Velocity checks: has this card been used more than 5 times in the last minute? Has this device initiated more than $500 in the last hour?
A ledger that works for 1,000 transactions per day and a ledger that works for 1 million transactions per second are built differently. The double-entry model tells you what to store. Ledger architecture tells you how to store it at scale while keeping balance queries fast and consistency guarantees intact.
The Balance Computation Problem Deriving balance as SELECT SUM(amount) FROM ledger WHERE account_id = X is correct but slow when the ledger has billions of rows.
Every financial system eventually rediscovers double-entry bookkeeping. Not because engineers read accounting textbooks, but because the alternative — tracking balances as a single number — produces bugs that are impossible to audit and reconcile. Double-entry is a 700-year-old invention that turns out to be exactly the right data model for distributed financial systems.
The Core Principle Every transaction touches exactly two accounts: a debit on one, a credit on the other of equal amount.