Cassandra is a tragedy.
Database replication should be a queue, or otherwise kept strict track of. If a datum should be replicated from X to Y and Z, then if it hasn't gotten to Z yet, then it should eventually. The database is allowed to fail to replicate at first, but it is not allowed to just give up.
Cassandra views 1000 replication events from X to Z as a flock of birds who set off toward their destination. Most should arrive. If some don't ... well, no problem, you still have at least 950, right?
Also, there is absolutely no backpressure to throttle a writing process that would really like to write as fast is it can but no faster. This makes replication failure much harder to avoid.
To deal with the consequences, Cassandra depends on read repair (which is ludicrous) and a manual process that amounts to read repair of everything all at once.
It's pathetic that the Cassandra guys won't fix these problems, or even acknowledge that they are problems.