Trust in your database

Excellent article on race conditions:

https://ketanbhatt.com/db-concurrency-defects/

CAP

Choose two: consistency, availability or partition tolerence

Alt: PACELC.

ACID

Traditional RDBMS drop availability

  • Atomicity - transaction is all or nothing
  • Consistency - database-level rules (e.g. constraints) will always be met
  • Isolation - differing levels! Essentially nobody else sees your changes until you want them to
  • Durability - when it says its done you can either nuke the power cable, machine, or data centre

BASE

Basically Available, Soft state, Eventual consistency.

Often chosen by NOSQL databases. Drops consistency.

Durability concerns. Consistency concerns.