▲ | nh2 4 days ago | ||||||||||||||||||||||
> your ACID db is probably running at READ COMMITTED by default You're probably refering to PostgreSQL. Yes, I am also frustrated that that doesn't default to SERIALIZABLE. I do wish the top two open-source "ACID" DBs (Postgres and SQLite) used guaranteed-safe, zero-surprise defaults. | |||||||||||||||||||||||
▲ | lanstin 4 days ago | parent | next [-] | ||||||||||||||||||||||
It isn’t worth it. Mostly financial transactions are done via append only ledgers, not updating; two phase auth and then capture; a settlement process to actually move money, and a reconciliation process to check all the accounts and totals. Even without DB corruptions they have enough problems (fraud and buggy code) with creating money and having to go back and ask people to more money or to give them more money so they have those systems in place any ways. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | layer8 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||
SERIALIZABLE isn't zero-surprise, since applications must be prepared to retry transactions under that isolation level. There is no silver bullet here. | |||||||||||||||||||||||
▲ | mrkeen 3 days ago | parent | prev [-] | ||||||||||||||||||||||
A CRUD architecture with proper ACID is an OK contender against other possible architectures. Personally I always go for event-sourcing (a.k.a. WAL per the article's title). But a CRUD that doesn't do ACID properly is crap. And since the people making these decisions don't understand event-sourcing or that they're not being protected by ACID, CRUD gets chosen every time. The DB also won't be set to SERIALIZABLE because it's too slow. |