В прошлом я использовал SQL Server и SQLCE для выполнения этой функции.
Вы можете определить, как, когда и что синхронизируется, и будет ли это односторонняя или двусторонняя синхронизация.и всякие другие вкусности.
Единственная проблема (из ваших вопросов POV) в том, что она не кроссплатформенная.
Тем не менее, система синхронизации сама по себе не является такой сложной.Это просто вопрос операторов CRUD, с соответствующими временными метками и способностью распознавать вещи по соответствующим ключам, и, конечно, с таблицей GRAVEYARD, которая позволяет отслеживать удаления.