У меня есть дерево объектов, хранящихся в базе данных, с использованием представления вложенных наборов. Каждый узел дерева имеет свой объект (только один). Дерево может быть изменено пользователями в онлайн-приложении. Также есть набор приложений (пк, андроид, ios), которые могут работать в автономном режиме и так же модифицировать свои данные. Новые листья или ветки могут быть добавлены на двух или более устройствах.
Далее все данные синхронизируются (REST API, XML) между сервером и автономными приложениями, когда приложения получают доступ в интернет. После успешной синхронизации состояние на стороне сервера и клиента должно быть одинаковым.
Нет проблем с синхронизацией данных с плоской структурой данных (на основе метки времени модификации), но я не знаю, возможно ли это с деревом. Синхронизация должна быть полностью автоматической. Я не хочу, чтобы пользователи вмешивались в процесс синхронизации.