Документация: Синхронизация

Работа без сети: изменения копятся в очереди и отправляются, когда появляется связь

Приложение на телефоне или компьютере может менять данные без сети, но главная копия лежит на сервере, в PostgreSQL. Номера изменений и проверка версий позволяют отличить обычный обрыв связи от настоящего конфликта.

1. Копия данных на устройстве

Приложения для компьютера и телефона хранят данные в локальной базе SQLite и читают их оттуда. Поэтому основные действия не ждут ответа сервера.

2. Очередь изменений

Каждое изменение получает постоянный номер. Если после обрыва связи его отправят повторно, второй раз оно не применится.

3. События с сервера

После отправки своих изменений приложение забирает чужие. Отметка «получено до сих пор» — это позиция в журнале сервера, а не время на часах устройства.

4. Конфликт — это отдельный случай

Если приложение правило устаревшую версию, система не выбирает «кто позже, тот прав», когда это может стереть чью-то правку. Конфликт сохраняется, его видно, и вы решаете, что оставить.