Сферический пример. Допустим, есть телефонный справочник: набор записей (айди, имя, телефон)
Вся эта байда хранится на сервачке и отображается вебмордой.
Теперь, у нас есть два телефона, один работающий под андроидом, второй - под огрызком яблока, на каждом из них есть клиент, редактирующий тот же самый список
Теперь Вася и Петя взялись редактировать несчастный справочник с разных телефонов. При этом возникают конфликты, аналогичные конфликтам в VCS при редактировании одного ресурса.
С одной стороны, при нажатии кнопочки «синхронизация» можно сразу сливать всю базу с телефона Васи, но тогда все изменения Пети (коих в случае менее сферического примера будет прилично) будут потеряны
С другой стороны, можно все изменения представлять в виде ченжсетов, где-то хранить их в телефоне, и отправлять на синхронизацию пачку ченжсетов. На сервере в веб-морде отображается shallow copy, но также где-то хранится полная история, и если ченжсеты не двигают историю вперед, а вклиниваются посередке, то происходит полная перестройка истории. На телефоне хранится shallow copy.
Перестройка истории - дело долгое, не приведет ли это к слайдшоу в реальных ситуациях? (объемы - например, количество заказов водки для предприятия, торгующего водкой. Куча агентов ходят со смартами, в которых «список заказов», а синхронизуют их когда появится инет)
Стоит ли разрешать конфликты в полностью актоматическом режиме? Если да, то какие? Пользователь - не программист. Что с ним произойдет от сообщения вроде: «вы пытаетесь обновить телефон, который был уже удален. Восстановить телефон?», сорвет крышу?
Главный вопрос в том, что, мб, кто-то уже все придумал, и достаточно применить хорошую практику. Где посмотреть? Хотя бы на примере сферической телефонной книжки?
(Заодним, сей тупак продолжать спрашивать здесь, или сразу в толксы?)