ACID letters and their real meanings
ACID, Letter by Letter — What Each Promise Really Means
Atomicity is abortability, not threading. Consistency is your own invariants.
A
ATOMICITY
all writes in the tx
either land together
or are all rolled back
so retry is always safe
is NOT:
thread-style atomicity;
that is isolation's job
call it abortability
C
CONSISTENCY
your app's invariants
stay true: books balance,
keys unique, refs valid;
declare them, DB enforces
is NOT:
replica sync;
nor linearizability
DB keeps what you declare
I
ISOLATION
concurrent txs must not
trip each other: classic
answer is serializability
as if run one by one
is NOT:
what most DBs sell;
know your real level
weak levels burden the app
D
DURABILITY
once committed,
data is never forgotten:
fsync and WAL on one node,
copies on many nodes
is NOT:
absolute: total disk
loss still loses data
commit is the point of no return
Interview line: ACID is a marketing word — ask which isolation level is actually on.
Durability costs fsyncs; consistency costs declared constraints.