4 ms·
Banks are eventually consistent. Online transaction processing creates "pending" transactions, and the data is often inconsistent. Your charge may exist in the
by superuser2 11y ago
Banks are eventually consistent.
Online transaction processing creates "pending" transactions, and the data is often inconsistent. Your charge may exist in the merchant's database but not post to your online banking for several hours. Or it may be a wildly different amount - i.e. gas stations will place a $100 hold on your debit card and it will stay that way for days until it's settled for the actual (lesser) amount. If you were accidentally double-charged, than rather than processing a separate refund, the merchant may simply not settle the duplicate charge, and it will drop off your pending transactions... eventually. The lag time may be several days or weeks. If it's a debit card, you can't spend the money during that time and you may be temporarily broke because of it.
If you make an ACH transfer, money will disappear from your account one night, spend a business day in the aether, and then post to the recipient's account on the third day. The system is in inconsistent state (i.e. money is missing) for at least a day, possibly a whole weekend.
The actual transaction is settled and goes into "posted" state with a lag of 2.5 * 10^8 ms - i.e. 3 business days. That's if you're lucky. Banks do need strong consistency, but not in anything approaching realtime.
Even ZooKeeper could probably handle the U.S.'s financial transactions faster than current infrastructure.
- baudehlo 11y agoAnd what would shock you most is some of the methods used to send those transactions (eg ftping a text file, and if it gets corrupt, someone opens it in vi to fix it - I have a friend who used to do exactly that).
- kalleboo 11y agoFor anyone who wants to read more, this blog post series goes into quite a lot of detail on ACH (including the FTPing and the fixed-field file format) http://engineering.zenpayroll.com/how-ach-works-a-developer-perspective-part-4/ http://engineering.zenpayroll.com/how-ach-works-a-developer-...
- z92 11y agoLooks like ACID is used by everyone, but banks.
- zhte415 11y agoThe ACH transaction happens instantly. What your banks are doing in the meantime is another matter. Probably not even going via ACH, rather through treasury department nettings, mitigated against each other, just because that's accepted. RTGS really is Real Time Gross Settlement. If you're led to believe elsewise, you're being conned.
- deleted 11y ago[deleted]