4 ms·
For example, a financial application might need to show users' account balances. When users make a deposit, they want to see the result of this deposit
by awinder 9y ago
For example, a financial application might
need to show users' account balances. When
users make a deposit, they want to see the result
of this deposit reflected immediately when
they view their balance (otherwise they
may fear their money has been lost!). There should
never appear to be more or less money in
aggregate in the bank than there really is.
Why does this example continue to come up time and again, banking absolutely doesn’t work this way. We feel like it should but deposits / transfers can take days to post, bank balances can absolutely reflect “incorrect” values, etc.
- vikiomega9 9y agoBanks do post current balances which reflects how ledgers work. The current balance also reflects transactions that havent posted and that seems to be in line with the example
- jedberg 9y agoBanks use eventual consistency for your balance. You just don't notice because it's usually really quick. The reason the ATM has a limit is because it's eventually consistent. It's possible you just went to another ATM and drained your account, but that hasn't reached the main office yet. They are limiting their risk by allowing you to defraud them of up to $500 (or whatever your limit is).
- discoursism 9y agoDo you know that, or is it your conjecture? There are a lot of other possible reasons to use $500 as a limit. For example, preventing people from structuring withdrawals at the ATM, preventing an accident from producing too much cash, limiting the frequency with which ATMs need to be serviced, and limiting the downside of unauthorized withdrawals. It is true in some sense that the banking system is eventually consistent, because commands can be issued asynchronously. For example, you can issue a check, and expect it to be drawn in the future. However, that does not necessarily apply to the ledger itself, and given what I understand about banking technology, I'm somewhat surprised if it is truly as you describe. If it is indeed a conjecture of yours, I urge you to make it more clear in your comments when you are speculating and when you are speaking with authority.
- deleted 9y ago[deleted]
- PeterisP 9y agoIt's worth noting that in general there's no "the banking system" (unless we're talking about particular single systems e.g. Fedwire), there's a mismash of many different, highly diverse systems used by different organizations having quite opposite properties - for example, in the context of the comment above, I happened to participate in a cards system migration some 15 (?) years ago where the old system did have the eventual consistency issue described above (mostly mitigated by limits, there were just a couple times where double-spending happened), and the new system ensured strong consistency. So it can be one way, and can be the other.
- jedberg 9y agoI know that. I've talked with people who work on banking systems who have confirmed it. It's true there are other reasons for the limits, such as the ones you listed, but if you are with say Bank of America, your limit and my limit can be different. The more credit history you've built up with the bank, the higher the limit will be. This is mostly because they trust you more and therefore consider the risk for defrauding smaller.
- sambe 9y agoIt takes a fraction of a second to send the withdrawal to the main office - how would a scam based on this really work? A second card with another person at a different ATM? Even then, you'd think you could serialise per-account without affecting throughput at all.
- planetjones 9y agoI really do not think this statement is true. AFAIK the limits are in place to limit fraud (if someone has skimmed or stolen your card) and to prevent theft (someone mugging you as you withdraw a huge amount of cash). If what you are saying is true it would be possible to go overdrawn at an ATM. This (again AFAIK) doesn’t happen as there is a call to check your balance.
- jedberg 9y ago> If what you are saying is true it would be possible to go overdrawn at an ATM. It is most definitely possible, it just rarely happens because the network doesn't fail often. See here for more sources: https://www.google.com/search?q=eventual+consistency+atm https://www.google.com/search?q=eventual+consistency+atm
- Lanzaa 9y agoThe banking system is rather complicated. I think it would be possible to overdraw in some situations. See also this article where hackers stole $45 million from ATMs: http://www.nytimes.com/2013/05/10/nyregion/eight-charged-in-45-million-global-cyber-bank-thefts.html http://www.nytimes.com/2013/05/10/nyregion/eight-charged-in-...
- he0001 9y agoI have worked at a bank and they definitely didn’t use eventual consistency for transactions. Money could be in flight when it transitions inside the bank, but never to client due to fraudulent behaviors, regulations etc. However not all transactions were not dealt with electronically and they were treated differently and mostly outside the systems until effective.
- xiphias 9y agoSpanner was built for AdWords, so it's handling real money actually. Google is not a bank, but it's handling a lot of money, so it was probably a good decision to move away from MySQL.
- kuschku 9y agoBecause banking in some couuntries actually does work like that. In Europe, since November 2017 banks are moving towards the SEPA Instant Credit Transfer system, which allows transfers in under 10 seconds, between all banks. So if you’re today using a European bank, your transfers might actually work like this.
- jnordwick 9y agoIt could be under 100 ms, but that still doesn't tell you the consistency model.
- kuschku 9y agoRequiring by law transactions to complete (and show up!) in under 10 seconds, EU-wide, provides some requirements for a consistency model, though, that eventually consistent models can not provide.
- solatic 9y ago"In other news, GOOG jumped by 7% today upon speculation that Google would soon introduce a banking product offering instant transfers between accounts. The speculation arises from a technical blog post, which describes Google's vision for how a banking website ought to look like, and stood out because no American banking product actually works in such a fashion today. Google's new banking product would compete with banks like Monzo, which also attempt to disrupt the legacy systems that power most contemporary banking infrastructure."