What if all transactions required strict global consistency? by Matthew Aslett.
Matthew quotes Basho CTO Justin Sheehy on eventual consistency and traditional accounting:
“Traditional accounting is done in an eventually-consistent way and if you send me a payment from your bank to mine then that transaction will be resolved in an eventually consistent way. That is, your bank account and mine will not have a jointly-atomic change in value, but instead yours will have a debit and mine will have a credit, each of which will be applied to our respective accounts.”
And Matthew comments:
The suggestion that bank transactions are not immediately consistent appears counter-intuitive. Comparing what happens in a transaction with a jointly atomic change in value, like buying a house, with what happens in normal transactions, like buying your groceries, we can see that for normal transactions this statement is true.
We don’t need to wait for the funds to be transferred from our accounts to a retailer before we can walk out the store. If we did we’d all waste a lot of time waiting around.
This highlights a couple of things that are true for both database transactions and financial transactions:
- that eventual consistency doesn’t mean a lack of consistency
- that different transactions have different consistency requirements
- that if all transactions required strict global consistency we’d spend a lot of time waiting for those transactions to complete.
All of which is very true but misses an important point about financial transctions.
Financial transactions (involving banks, etc.) are eventually consistent according to the same rules.
That’s no accident. It didn’t just happen that banks adopted ad hoc rules that resulted in a uniform eventual consistency.
It didn’t happen over night but the current set of rules for “uniform eventual consistency” of banking transactions are spelled out by the Uniform Commercial Code. (And other laws, regulations but that is a major part of it.)
Dare we say a uniform semantic for financial transactions was hammered out without the use of formal ontologies or web addresses? And that it supports billions of transactions on a daily basis? To become eventually consistent?
Think about the transparency (to you) of your next credit card transaction. Standards and eventual consistency make that possible.