Hacker News new | ask | show | jobs
by injb 1559 days ago
It's hard to see how you could blame this on idempotency - even the author's questionable definition[1]. He pretty much explains what went wrong in black and white:

"Don't assume "unknown" means "good". Assume the opposite." Ding! We have a winner.

"This API at the time retuned only 200s where the body had a message to be parsed which indicated success / status message / error." - and that's how you got yourself into this mess in the first place.

What I would really like to know is how the financial loss compares to the loss if Uber had handled the situation "correctly", i.e. stopped the transactions. I mean, is a restaurant really better off turning customers away all day, vs giving them free food all day? And if so, by how much?

[1] i.e that idempotency means always getting the same response, as opposed to the usual meaning which is that repeating the request n times leaves the system in the same state as the first time.