Hi We found that Cassandra can return timeout error but the actual operation succeeded. https://github.com/gocql/gocql/blob/master/conn.go#L1441
Is there a way to know all those kind of errors? Here is the background why we need this: We are using two phase commit: 1) append data to tableA 2) execute LWT on tableB 3) So if 2) fails we need to clean up the data written into tableA. Otherwise we lost data. Previously we always clean up in 3) if we got any error from 2), which is wrong for ErrorTimeoutNoReponse. This error simply means the result is unknown. So we should whitelist this error. But we don't know what are the other errors that should also be whitelisted. *Alternative:* What we can also do is instead of whitelisting, we do backlisting. We only clean up in 3) for certain error that we know that 2) doesn't succeed. But from the gocql code, I don't know how to find all of them. If we don't clean up correctly in those case, we may leak some data that will never be deleted. Thanks