June 13, 2020

Transactions: myths, surprises and opportunities



Martin Kleppmann


This was the first talk from Martin that I saw, he is very thoughtful and explains complex ideas somehow easily. I think because of Datomic I got more interest in databases, I did the Day of Datomic course in person at Cognitect and it was very nice to meet so many people interested in databases.

Looks like the software engineers in general does not like this subject very much, however seems like the job of building and dealing with "information systems" will require you to know more and more about these tools.

I will keep watching materials from Martin now. Luckily, I already had his book. Looking forward to read it.



  • archive tape

  • fysnc to disk

  • replication


  • Not related to C in CAP theorem

  • "tossed in to make the acronym work" (? lol)

  • property of how the application use the database not the database itself


  • not about concurrency!

  • handling faults (crashes)

  • transactions = (multi-object) atomicity, rollback writes on abort

  • Abortability is better name rather than Atomicity


  • Serializable?

  • Read committed. You read only after the operation has been committed.

  • Snapshot isolation. Try to prevent read skew

  • Repeatable read. Try to prevent read skew


  1. Create transaction boundaries in your applications.

  2. Avoid transactions across services

  3. Learn the isolation levels defaults of your database and the implications

Tags: database distributed