У меня такое ощущение, что там должны быть шаблоны синхронизации клиент-сервер. Но я полностью не смог сделать это.
Ситуация довольно проста - сервер является центральным node, который несколько клиентов подключаются к тем же данным и манипулируют ими. Данные могут быть разделены на атомы, в случае конфликта, независимо от того, что находится на сервере, имеет приоритет (чтобы избежать попадания пользователя в конфликтное решение). Частичная синхронизация предпочтительна из-за потенциально больших объемов данных.
Есть ли какие-либо шаблоны/хорошие практики для такой ситуации, или если вы не знаете ни о чем, - каков будет ваш подход?
Ниже я расскажу, как это решить: Параллельно с данными будет вести журнал изменений, имеющий все временные отметки транзакций. Когда клиент подключается, он получает все изменения после последней проверки в консолидированной форме (сервер проходит списки и удаляет добавления, за которыми следуют удаления, объединяет обновления для каждого атома и т.д.). Et voila, мы в курсе событий.
Альтернатива будет содержать дату модификации для каждой записи, а вместо удаления данных просто отметьте их как удаленные.
Любые мысли?