The Comment That Blinked

A user loads a thread and sees a new comment, refreshes, and the comment is gone; another refresh brings it back. Reads are load balanced across several asynchronous read replicas. Which guarantee is being violated and what fixes it?

A

Linearizability: have every replica apply changes synchronously so that all of them commit in lockstep with the leader

B

Monotonic reads: pin each user's reads to one replica (for example by hashing the user ID) so they never move backwards in time

C

Read-your-writes: send that user's reads to the leader for a short window after each write they make, then return them to the replicas

D

Consistent prefix reads: write causally related records to the same partition so a sequence of ordered writes is never observed out of order