Предстоит написать приложение, которое работает большую часть времени с локальным хранилищем и периодически синхронизируется с центральным (например, облаком).
У одного пользователя может быть несколько приложений (приложения на десктопе, планшете, смартфоне).
Т.е. нужно сделать что-то вроде Evernote.
Подскажите что почитать из теории?
Тип хранилища — sql, но может быть и что-то еще, например —
Indexed Database.
Предполагается, что в хранилище будет лежат направленный граф (возможны циклические зависимости).
Я так понимаю, что есть два подхода:
1. Трекинг изменений и их накатывание между хранилищами. (типа mercurial'а)
2. Мердж двух состояний. (типа svn'а)
К системам контроля версий просьба не отсылать — хочется чего-то попроще, поэтому будет скорее всего второй вариант.
Может обзор кто видел разных подходов в синхронизации?