Bank -> debit card purchase -> perform all required database work in a transaction -> transaction fails -> decline debit card purchase
Without transactions, in this scenario, maybe the debit card transaction fails but money is still taken out of your account? Doesn’t sound very pleasant.
>the attempt to charge is recorded in a leger
Hint: how do you think this attempt is recorded and fulfilled? Or, do you think "it's just appended" and bank recalculates your balance from scratch every time you spend 1$ on coke can?
Only bank I've heard of that's not using traditional relational database for ledger is Monzo [1] - but they still use Cassandra's transactions.
[1] https://www.scaleyourapp.com/an-insight-into-the-backend-inf...
That's how the bank I worked with did it. Of course there was caching in place so we didn't actually recompute everything every time, but the implementation of that was a lot closer to "commit a kafka offset" than an RDBMS-style transaction. (E.g. we didn't overwrite the "current balance" in-place, we appended a new "current balance as of time x").
I think you've proved our point
Transactions were kept by humans, literally for a few centuries, before the algorithm was adapted for computers.