If you used a relational database at all, you probably heard of transaction isolation levels. Transaction isolation levels have huge impact on the behavior of your application - correctness, performance and error rates. These days your database may be distributed, so you may have to reason about distributed transactions too.
In this video, I explain transaction isolation levels with simple examples, then I explain why these levels barely make any sense. I conclude with few examples of the complications involved in distributed transactions - and bad news about 2 phase commits.
----
For more in-depth reading:
Transaction isolation in few popular DBs:
https://asktom.oracle.com/Misc/oramag...
https://dev.mysql.com/doc/refman/8.0/...
https://www.postgresql.org/docs/curre...
The paper where Microsoft Research absolutely burns ANSI SQL 92 transaction isolation: https://arxiv.org/pdf/cs/0701157.pdf
Why transactions matter: http://www.bailis.org/blog/understand...
Super clear explanation of serialization anomalies: https://justinjaffray.com/what-does-w...
Daniel Abadi on distributed transaction anomalies (I borrowed heavily from this in the second part of the video): https://dbmsmusings.blogspot.com/2019...
Jepsen putting together isolation and distributed consistency: https://jepsen.io/consistency