Revolut down as users report app not working

93 pointsposted 13 hours ago
by baal80spam

90 Comments

mrkeen

11 hours ago

Interviewed for them this year.

Got into a heated argument where the interviewer insisted it was perfectly acceptable to store money as a mutable row in a database.

I pushed back with the standard "You append transactions (including corrections) to a ledger" but he wasn't convinced.

I whipped out the standard two-ATMs -separated-by-a-distance overdraft example, and how you can create or destroy money that way.

He said it made no sense as an example because it was buggy and you would never release buggy code.

I asked if he'd done bug fixes before (yes) but obviously he was going to keep digging in further.

The irony of it was that he was part of the blockchain team.

Ezhik

8 hours ago

Revolut refused to help with a dispute. They rejected it after like 2 hours, first claiming they contacted the seller, which it turns out they did not.

Then they claimed my evidence was incorrect, without any opportunity to correct.

And finally in their complaint system they completely refused to look at any of the evidence and sent me a generic refusal letter that referred to me by the wrong name.

All this despite other banks successfully handling chargebacks for the thing in question. Sad.

randunel

10 hours ago

I don't see the difference between a ledger (possibly with a unique sequence enforcement) which would take the balance to a negative number, and a mutable row in a relational database with optimistic locking (same unique sequence enforcing). Would you mind helping me out, how would a ledger work better to prevent a negative balance, given that the enforcement isn't specific to ledgers and can be used in relational DBs? After all, both can go to negative balance by applying atomic subtractions, and both can prevent writes with the wrong sequence.

mrkeen

10 hours ago

I don't think you can avoid negative balance, without giving up on availability (i.e. moving from AP to CP). And then an outage like TFA takes down your whole system.

You might be assuming that there is only one database, and that all consumers are reliably connected it. So who owns the database: Visa or MasterCard? Because ACID doesn't span across database instances (let alone database vendors or companies).

If you write down that "Bob withdrew $20", that cannot be wrong, (at best it can lack info that you later wish you had).

If you write down "Bob's balance is now $10", you already know the problems with that from your question.

sksksk

10 hours ago

I get you with needing a ledger, which most banks use.

I'm assuming Revolut do as well, but this engineer wasn't aware. Or perhaps it was a different question they thought they were asking, or maybe a misunderstanding.

But the two ATMs problem would be solved by securing a lock on the database before proceeding with the transaction?

mrkeen

9 hours ago

He suggester that they had both. My question was what to do when they disagree, and he wasn't able to either conceive of the 'two sources of truth problem' or wasn't able to suggest a solution. He pushed back saying: if they disagree then you've got buggy code, and that your job is to not write buggy code. "That's why we test". "For race conditions?" etc. etc.

Who owns the database in your locked example?

sksksk

9 hours ago

Revolut would own the database in my example.

How would a ledger work without having some kind of lock, how would you prevent a negative balance?

When someone checks their balance, would you to retrieve every transaction from the ledger and calculate the current balance?

ergl

9 hours ago

> But the two ATMs problem would be solved by securing a lock on the database before proceeding with the transaction?

You can also let an overdraft occur. Now the user ows the bank some money and you can charge them interest for their debt.

strideashort

9 hours ago

Probably hybrid is best.

Row level locking and update indeed works, most of the time - bugs are a real issue.

som write ledger and update row in the same transaction.

then in bg have a batch ledger verification, probably on a read replica, and flag any discrepancy.

TacticalCoder

9 hours ago

> Got into a heated argument where the interviewer insisted it was perfectly acceptable to store money as a mutable row in a database

Hey, not only he didn't believe in appending to a ledger but moreover he probably believed it was fine to store the amounts in floats (I know, I know, everybody who's using floats never make any mistake, knows everything about rounding rules, has read and could write by heart "What every computer programmer should know about floating-point numbers" etc. But I'm still not using floats for monetary amounts).

thiht

9 hours ago

> you would never release buggy code

He's right, just make no mistakes!

igravious

11 hours ago

even if you were technically correct why would a company hire someone who demonstrates that they are unable to disagree in such a way that a heated argument does not ensue? i'd say they dodged a bullet.

mrkeen

10 hours ago

The interviewer's job (I was briefed beforehand) was to make sure I know my concurrency, because they use a lot of it there.

I have all the patience and time in the world to discuss my ideas.

I had the problems, the solutions, slide decks and a Miro board ready to go.

He wanted to shut down discussion at every turn with nonsense like "so you think no banks work at all?". Sure, I can grin and eat shit, or I can say "banks predate your CRUD operations by just a little bit".

If he had working knowledge on how to represent mutable money amounts in a distributed environment, he didn't let on. I was all ears.

So I pushed back on him, and I'll push back on you:

> even if you were technically correct why would a company hire someone...

Because I'm technically correct.

You're certainly not alone in your appraisal of the situation. The market over here works exactly this way. Correct, reliable systems come a distant second to agreeing with the team.

Technical discussions are incredibly likely to devolve into people discussions.

No people discussion has ever worked it's way back into being about fixing the broken software.

fyredge

10 hours ago

Pay him no mind. I shiver at the thought that he might be at management level and passed potential hires because they didn't not disagree in the way he liked.

If anything, you dodged a bullet from a potential job where nothing gets done correctly.

strideashort

9 hours ago

ah yes… an interviewer recently proudly presented his interview sieve… a non-policy book he swears to by a “successful professor”.

Interviews are a gamble. If he interviewer has a specific framework in mind - no matter how correct or incorrect it is - good luck hitting the right spots.

igravious

9 hours ago

it's a strawman that the only two available options are the mutually exclusive "grin and eat shit" one or alternatively a heated argument

i stand by what i said here down-votes be damned; judging by our brief interaction and your telling anecdote you come across as a smug disagreeable know-it-all and in their position i wouldn't have hired you -- there is after all the option to hire someone who both knows their stuff and doesn't come across the way you do

Oh Revolut's down are they? Let me tell you about an interview I did with them. Blah blah blah. Yeah, no thanks.

mrkeen

9 hours ago

I would love if it all engineers were professional enough to avoid the personal criticisms and stick to the comp sci, which is far more interesting.

This is why I wrote:

  Technical discussions are incredibly likely to devolve into people discussions.

  No people discussion has ever worked it's way back into being about fixing the broken software.
I'm perfectly happy, if things get out of hand, for someone to take me aside and say "you were a bit of a cunt back there mrkeen." We're all human. As long as we actually get fix the code or resolve the intellectual side of the argument too.

I wouldn't dream of calling someone a smug disagreeable know-it-all.

I'm here for any discussion of the tradeoffs of balance v ledger, though.

tasuki

11 hours ago

Yes they did, and so did mrkeen!

igravious

11 hours ago

oh!

who or what is mrkeen?

cianmm

10 hours ago

the person you replied to

Tostino

9 hours ago

The person you originally replied to.

monneyboi

12 hours ago

I just learned the embarassing way that my ability to pay for groceries depends on the livelyness of europe-west2.

OsrsNeedsf2P

12 hours ago

The uptime of cash in my wallet is pretty close to 100%. It's extremely rare that I have to use it, but it's incredibly convenient to have each time it's required

traceroute66

10 hours ago

> it's incredibly convenient to have each time it's required

Sadly there is an increasing preponderance on the part of retailers to do one of two things:

    1. Go card only (sadly happening in far too many places)
    2. Make it incredibly difficult to pay by cash (e.g. 10 card tills, 1 cash till with long queues because it is also the cigarette/lottery ticket/package collection till)
The only people remaining who will almost kiss you for offering cash instead of card are taxi drivers.

comboy

11 hours ago

If you look at uptime as discrete set of events when you need to pay for something, my cash uptime is not looking great nowadays. "Sorry I can't break that" or machines accepting coins which you don't have at hand. Just to be clear I despise CC companies the system is broken in many ways.

tossandthrow

11 hours ago

You are aware that many places don't accept cash, right?

layer8

10 hours ago

Most EU countries require cash acceptance. There is also an EU-wide legislation in the works: https://www.europarl.europa.eu/legislative-train/theme-an-ec...

vladvasiliu

10 hours ago

Here in France, many places won't take large bills. You can usually forget about paying with 100 € bills, and many will be iffy even about 50s.

I'm also pretty sure it's illegal to pay cash for anything above 1000 €.

I'm curious how this legislation will end up, because the reason to push for cashless is that you should think of the children^Wterrorists. And much of this push comes from the EU itself (see chatcontrol).

layer8

9 hours ago

> I'm also pretty sure it's illegal to pay cash for anything above 1000 €.

The plans for harmonization are to have a limit of 10000 €.

> the EU itself

“The EU itself” isn’t a singular mind, it’s a forum with many participants and positions. In the end there needs to be a majority in the Parliament.

IsTom

11 hours ago

I don't know about other countries, but in Poland you must accept cash except for a few cases (over internet, large transactions, places without employees).

pjmlp

11 hours ago

In Jurassic Europe, most still do.

MonkeyClub

10 hours ago

And it’s good that they do.

No cash means no freedom.

kakacik

11 hours ago

Well its about time (a decade ago) to ignore those places and be vocal about it.

Contactless is all fine and dandy but straight out refusal to handle cash is a big negative for the users, which is the only perspective anybody cares about. On top of obvious long term massive loss for society and personal freedom. Don't feed the actors that are harming you / us.

tremon

11 hours ago

How does that affect the uptime of their wallet?

justauserid

10 hours ago

Well the data was up on the hard disk. Fault lies with the electricity and cables.

bob1029

10 hours ago

Behold the advantage of VisaNet and friends. When you swipe on these networks, your authorization is handled in a dedicated bunker on some of the best silicon we know how to create (Telum). The network links between issuers and acquirers are monitored in real time by humans who will contact ISPs and NOCs at 3am local time if need be.

This is why the apparently extortionate merchant fees. Precisely so that when you do swipe it always works no matter what. I genuinely cannot recall a single instance where I was unable to obtain payment auth in a grocery store using Visa or Amex.

sceptic123

8 hours ago

If Revolut is at the end of the auth chain and they are down then Visa can't auth the tran, bunker or no.

yreg

11 hours ago

It's a good idea to have multiple debit cards (both visa and mastercard) from different banks. You can often get them for free.

robtaylor

12 hours ago

SMAAART

10 hours ago

No redundancy redundancy?

No redundancy redundancy?

No redundancy redundancy?

No redundancy redundancy?

No redundancy redundancy?

Imustaskforhelp

12 hours ago

Thanks, your comment was the first one which linked the two.

Revolut is the biggest private company in all of Europe.

Perhaps it’s me but I still find it kinda wild that a single power outage in London can shut down Google DC and it can lead to Revolut shutting down for some time disrupting much of the economy which depended upon it

Perhaps this could’ve been prevented, which makes me wonder how much of code written at Revolut is ai generated and its ai policy?

azuriten

12 hours ago

If their infrastructure is tightly coupled to a cloud provider in a single region then that's what they need to be work on and not necessarily their AI policy.

cromka

11 hours ago

> Revolut is the biggest private company in all of Europe.

As in not publicly traded? That's surprising, to be honest. How is that even measured?

boxed

10 hours ago

IKEA is private. That's just from the top of my head. Pretty sure IKEA is way bigger than Revolut.

altmanaltman

11 hours ago

A simple google search or AI prompt can tell you that they are not the biggest private company in all of Europe by a decent margin.

roryirvine

9 hours ago

I suspect they might be if you were to squint a bit and invent a hypothetical valuation based on their latest funding round.

But, yeah, certainly not by revenue, income, assets, number of employees, or any of the other metrics you might use for a private company.

Ecstatify

11 hours ago

Revolut needs a way to proactively notify users when their cards aren’t working. It’s so frustrating having to go to Reddit just to find out that Revolut is down.

layer8

10 hours ago

> proactively notify users

Probably difficult if the cause is their cloud infrastructure being down.

pipe01

10 hours ago

Shouldn't be a problem if you don't self host your status pages, which you shouldn't

layer8

9 hours ago

A status page doesn’t proactively notify users.

pipe01

9 hours ago

Neither does reddit, but users can check it to see official statements from the company instead of possible misinformation elsewhere

user

12 hours ago

[deleted]

BoumTAC

12 hours ago

Can we still pay ? I have some shooping to do during my lunch break and I don't want to feel stupid without a way to pay at the checkout.

Macha

12 hours ago

My revolut cards (both google pay and actual physical cards) were failing to process payments and had to use my backup card from a traditional bank instead

vilius

12 hours ago

I could not pay via Revolut card on Apple Pay this morning. However, the same physical card worked.

etatester

12 hours ago

Article mentions app down, which presumably it's not the same part used by MasterCard

danaris

11 hours ago

From what I've seen—personally and from a variety of online sources—there's intermittent availability of basically everything, which means you might be able to access the app, or you might be able to pay by card, but that's going to change potentially from minute to minute, with an average of somewhere around 10% uptime. (Which, of course, means that you, personally, might just be in the 90% of downtime all the time until it's resolved.)

Take with appropriate seasoning, given its anecdotal nature.

user

11 hours ago

[deleted]

petesergeant

11 hours ago

My UK-issued Revolut Visa worked fine in a foreign country at 12:00pm London time, via Apple Pay, if that's any help

petre

11 hours ago

I tried to pay gas today with Revolut plastic. Didn't work, used another card.

rvz

12 hours ago

Once again, blockchains that use USDC continue to run without any serious outages for years. I just paid for an item with USDC (using Phantom Wallet) right now and there are many other examples of this.

No need to wait for a bank and it doesn't matter the blockchain, as long as it supports USDC and you have a crypto wallet, the payment goes through.

Stripe knows this already and crypto payments will be here for a very very long time as they already are today.

mrkeen

11 hours ago

I've been hearing about bitcoin for 15+ years and I don't think I've ever walked into a shop where they accepted it.

So, approximately six 0s of uptime for my use case?

rvz

11 hours ago

> I've been hearing about bitcoin for 15+ years and I don't think I've ever walked into a shop where they accepted it.

I didn't say bitcoin. I said blockchains that use USDC.

> So, approximately six 0s of uptime for my use case?

No-one cares if 1 person (out of 8 billion and trillions of bots) won't use it. It exists and Shopify and Stripe have crypto payments with USDC which is useful for both humans and agents.

[0] https://stripe.com/gb/use-cases/crypto

4ggr0

10 hours ago

how exactly does one walk into a shopify store?

the point was about physical flesh-to-flesh shopping experiences.

rvz

10 hours ago

> how exactly does one walk into a shopify store?

If they have a POS Terminal at their physical brick and mortar store powered by Shopify, they can do just that [0] and it accepts crypto payments.

The same for Stripe Terminal which allows contactless payments with stablecoins such as USDC [0] for physical stores. They can accept crypto from there and Stripe handles the transaction seamlessly.

[0] https://www.shopify.com/uk/pos

[1] https://www.privy.io/blog/contactless-payments-with-stableco...

mrkeen

9 hours ago

  Revolut, for example, has confirmed all its operations, that include, sign-ups, sign-ins, payments and transfers, top-ups, ATM withdrawals, stock trades, cryptocurrency, are all down.
https://www.neowin.net/news/google-cloud-outage-takes-down-h...

rvz

6 hours ago

Except, you do not need a bank to use a crypto wallet.

For example, Phantom Wallet, MetaMask and Robinhood Wallet doesn't need a bank to make payments and send money anywhere.

unchar1

3 hours ago

How exactly will someone "use" their crypto wallet if their payment processor is down.

4ggr0

9 hours ago

where i live 95% of the shops use a terminal from SIX[0], small shops use SumUp[1] or TWINT(as far as i understand that's comparable to venmo). i've seen about <5 shops with bitcoin stickers, mostly abroad. and they were mostly vape shops, interestingly enough. guess there's no demand at all for crypto in the physical spaces i'm a part of.

which makes sense, you'd either end up paying in pegged, virtual crypto dollars, or pay with a completely separate crypto currency which then means that the shoes you bought a month ago are suddenly worth a magnitude more or less. might as well pay in turkish lira.

[0]https://www.six-group.com/en/home.html [1]https://en.wikipedia.org/wiki/SumUp

sceptic123

8 hours ago

I wonder how many of those vape shops are fronts for organised crime and/or money laundering operations and how much that's related to them being happy to accept bitcoin.

inexcf

9 hours ago

Ah okay, so your pedantry about it being USDC and not Bitcoin was unnecessary and "it exists and you can use crypto to pay" is in a made-up fantasy world where you can in fact do that.

Like can you pay with crypto at a Stripe POS when the infrastructure goes down? Or was this just completely irrelevant?

ben_w

9 hours ago

1. Revolut also offer crypto wallets, this clearly didn't help: https://help.revolut.com/help/wealth/cryptocurrencies/crypto...

2. This is Europe, we don't use USD directly or indirectly-via-backed-crypto for daily shopping.

3. Crypto comes in two layers: layer 1 which is too slow to replace interbank exchanges (which is much easier than everyone in Spain paying rent, which is much easier than everyone in Berlin buying lunch); and layer 2 which, as per memes about tech guys reinventing things which already exist, is reinventing the concept of a bank which is the thing here which fell over because the cloud it was on got unplugged.

rvz

6 hours ago

1. You do not need a bank to have a crypto wallet. You can just download a wallet (Phantom Wallet) on the app store.

Revolut’s “wallet” is managed by them and it is not the only wallet that exists.

2. We know and it does not matter since the EURC stablecoin exists today for that.

3. Most Layer 1 blockchains such as Solana, Stellar, XRP and Tempo are already fast (less than 10 seconds), worldwide with extremely very low fees for transactions.

ben_w

3 hours ago

1. Therefore Stripe is irrelevant and you shouldn't have brought it up in this context.

2. Then USDC is irrelevant and you shouldn't have brought it up in this context.

3. Fees are irrelevant; worldwide is irrelevant; "10 seconds" is the wrong category of speed: throughput rather than duration.

Though 10 seconds isn't even fast in this context, payment cards are routinely used on e.g. the London Underground at the turnstiles, and anything over about 2 seconds would look like an error and that en-masse would cause noticeable queues getting into or out of the system and corresponding city-level commuting delays.

And normal card use in London public transport acts like a smart contract, as the fee isn't known on initial use, but when exiting the transport network later. Similar on hotels, from what I hear, though they handle it differently.

Both of these have a broader problem: anything on credit (which these function like as the final bill isn't known at point of sale) is fundamentally not part of the blockchain system, so even with all that, all credit cards need something bank-like (and if you use a smart contract to simulate this, you're taking on the risk of bugs in the contract).

From what I understand, TfL actually does all the hard work themselves and figures out the bill later, so if their DC went down the same time as Revolut's they'd not work even if this was a crypto solution that solved every other issue.

IneffablePigeon

12 hours ago

What on earth are you talking about my guy

rvz

11 hours ago

This is what I am talking about: [0]

If you were following Stripe for years, you would know that they are already using crypto for payments and it is here to stay.

[0] https://stripe.com/gb/use-cases/crypto

pllbnk

12 hours ago

Not saying it's a vibe-coding issue. But I just imagine a scenario where a global service experiences significant disruption due to a vibe-coded release. No person understands how it works or is able to figure out in less than a week because no human has ever glanced at the code for a couple years, so the decision is taken to unleash LLM agents directly on production to fix the issue. Of course, one of these agents has to do some database migration but there is a breaking change, so they launch a sub-agent to deal with that; the sub-agent doesn't have a full context, so it decides that the easiest way would be to drop the database and so it does. The latest _successful_ backup took place a month ago.

$100B value down the drain.

piltdownman

12 hours ago

Intermittent network failures in europe-west2 region != vibecoding

pllbnk

11 hours ago

I didn't say it's a vibe-coding issue, though it could be. Your guess is as good as mine.

comboy

11 hours ago

[citation needed]