On 23 sept. 2014, at 09:15, Radim Vansa <rvansa(a)redhat.com> wrote:
>> Please, consider also the corner cases such as overwriting
already updated
>> value, e.g. after OutdatedTopologyException. Sometimes the oldValue might
>> not be correct (we probably can't evade this but I hope we can detect that
>> it might have happened) and the Converter should react to that - e.g. by
>> sending full new value instead of empty diff (because oldValue == newValue).
> Unfortunately it is too late to retrieve the old value by the time we
> do the retry if it was already replicated to a backup owner. We do
> detect this and provide that info the Listener event, but talking with
> some others I am unsure if providing this information to the
> Filter/Converter is fully needed.
Not providing that info to Converter limits the use-case of converter
producing deltas. In fact it's even worse - users will write that
converter (because the won't expect incorrect old values - nobody reads
documentation) and it will give them unreliable results.
Would passing an enum representing the transition - in this case the error state - be
sufficient?