Linearizability guarantees that every operation appears to take effect instantaneously at some point between its invocation and completion.
Reads see the latest committed write.
Clients do not need to reason about replica lag.
The price is coordination.
Copied
def write(value):
quorum = await replicate_to_majority(value)
return {"ok": quorum >= 3}
sequenceDiagram
participant C as Client
participant L as Leader
participant F as Follower
C->>L: write(x=1)
L->>F: replicate(x=1)
F-->>L: ack
L-->>C: committed