Cross-post. Original: stellarbytecapital.com/blog/cross-border-payment-system-design
A payment system has one job that dwarfs all the others: never lose track of money. Features, UI, and even uptime are negotiable in a pinch — a lost or duplicated transaction is not. Cross-border adds currencies, multiple payment channels, settlement delays, and regulators on top. Get the money-safety core right and everything else is ordinary engineering; get it wrong and no amount of polish saves you.
The ledger is the system
The single most important decision is to make an append-only, double-entry ledger the source of truth — not a mutable balance column you increment. Every movement of money is recorded as balanced entries (a debit and a matching credit) that sum to zero. A user's balance is derived from the ledger, never stored as the primary fact.
Immutable entries. You never edit or delete a posting. A mistake is corrected with a new reversing entry, so history is a complete, auditable trail.








