def clear_conflict(source_db, diff, remaining_attempts)
source_change = diff.changes[source_db]
target_db = OTHER_SIDE[source_db]
target_change = diff.changes[target_db]
target_action = CONFLICT_STATE_MATRIX[source_change.type][target_change.type]
source_key = source_change.type == :update ? source_change.new_key : source_change.key
target_key = target_change.type == :update ? target_change.new_key : target_change.key
case target_action
when :insert
attempt_insert source_db, diff, remaining_attempts, source_key
when :update
attempt_update source_db, diff, remaining_attempts, source_key, target_key
when :delete
attempt_delete source_db, diff, remaining_attempts, target_key
end
end