Как разрешить конфликты с непрерывной репликацией
Я новичок в CouchDB и PouchDB и использую его для создания системы управления контактами, которая синхронизируется между мобильными и настольными устройствами и может использоваться в автономном режиме. Я вижу, что использовать PouchDB бесконечно проще, чем писать бэкэнд PHP / MySQL.
Я успешно его использую, и когда я делаю противоречивые изменения на автономных устройствах, CouchDB использует алгоритм для произвольного выбора победителя, а затем корректно передает его на все устройства.
Я хотел бы реализовать собственный алгоритм объединения конфликтующих записей. Вот алгоритм, который я хотел бы использовать:
Если запись удаляется на одном клиенте и просто обновляется на другом, обновленная версия выигрывает, если оба клиента не согласятся на удаление.Запись с самым последниммодифицированный» временная метка становится главной, а старая запись становится вторичной.Любые поля, которые существуют только в дополнительном устройстве (или являются пустыми в главном устройстве), перемещаются в ведущее устройство.Главная ревизия сохраняется, а вторичная удаляется.CouchDB»с гидом есть хорошийобъяснениено я неПонять, как реализовать его с помощью API PouchDB во время непрерывной репликации. СогласноPouchDB API, есть "по изменению" слушатель в опциях репликации, но я нене понимаю, как использовать его для перехвата конфликтов.
Если бы кто-то мог написать краткое руководство, включая пример кода, я и яЯ уверен, что многие другие пользователи PouchDB оценят это!