Partitionnez le grand livre par compte et par temps, gardez les données récentes hot et les anciennes cold, et traitez les lignes comme un grand livre append-only immuable — pour que l'historique d'un seul compte soit une petite tranche indexée, jamais un scan de milliards de lignes. Le pattern d'accès est toujours « un compte, une plage de dates », donc partitionnez pour y correspondre.
Architecture
Write ─▶ Ledger table (append-only, immutable)
partition by (account_hash, month)
│
┌────────┴─────────┐
HOT tier COLD tier
last 3 mo older
Postgres/SSD S3/Parquet, Glacier
│ │
index-seek keyset paginate ──▶ API (account+range)
