Hacker News new | ask | show | jobs
by everforward 35 days ago
It’s a distributed transaction, which is what makes it complicated. You need to atomically remove money from an account in one database and add money to an account in a totally separate database.

There’s a bunch of weird corner cases that come with that. What if the receiving account ID doesn’t exist, or the recipients bank flags the transaction, or the sender closes their account before the recipients bank has applied their end of the transaction.

I think some of these transfer systems are simpler because they’re global so both records are in the same database. Transactions can be technically atomic rather than organizationally atomic (ie atomicity is present in the technology, rather than approximated by processes).