Details
-
Improvement
-
Status: Resolved
-
Normal
-
Resolution: Duplicate
-
None
-
None
-
None
Description
If a counter write returns a TimeoutException, the client cannot retry its write without risking an overcount.
One idea to fix this would be to allow the client to specify a replay ID with each counter write unique to the write. If the write timeout, the client would resubmit the write with the same replay ID and the system would ensure that write is only replayed if the previous write was not persisted.
Of course, the last part of this ("the system would ensure ...") is the hard part. Still worth exploring I believe.