Question
Design a settlement-reconciliation system that performs a three-way match between (a) your internal ledger of authorized/captured transactions, (b) the processor's daily settlement file, and (c) the actual money that lands in your bank account. ~8M transactions/day. The three sources disagree constantly: a capture you recorded isn't in the settlement file yet (timing), the processor's fee differs from your estimate, the bank deposit is netted across thousands of transactions, and occasionally money lands with no matching internal record. How do you match, classify breaks, and keep the unmatched set bounded?
Clarify scale and constraints first. Propose a clean component breakdown, then go deep on the hard parts — data model, bottlenecks, consistency, failure modes — and name the trade-offs you are making.