In a distributed system, any operation may fail at any time leaving the change applied in some systems but hasn’t reached all the systems. So, this type of, half-done, changes are regarded as inconsistency.
- two-phase commit
- read repair
- write repair
In write repeat, calls from the clients are meant to fix, if there is, inconsistent state of data that is associated with the call.
- smarter clients
- retried until the call has been successfully completed.
- idempotency is the key
- retryable/non-retryable errors
Ref: