From designing data intensive applications:
Cassandra does wait for read repair to complete on quorum reads [27], but it loses linearizability if there are multiple concurrent writes to the same key, due to its use of last-write-wins conflict resolution.
I've read elsewhere that read repair needs to be atomic in order to make the system linearizable
However in Martin kleppmann's youtube series, he states read repairs on quorum reads and writes are linearizable.
I'm confused by this, actually intuitively it makes sense that read repairs are linearizable even if they are not atomic because it delays the read response back to the client, causing the conflicting read to be concurrent with other reads.
The downside of a system like this that I see are that concurrent writes can be dropped while sending back a success msg to the client.