1. Копия данных на устройстве
Приложения для компьютера и телефона хранят данные в локальной базе SQLite и читают их оттуда. Поэтому основные действия не ждут ответа сервера.
2. Очередь изменений
Каждое изменение получает постоянный номер. Если после обрыва связи его отправят повторно, второй раз оно не применится.
3. События с сервера
После отправки своих изменений приложение забирает чужие. Отметка «получено до сих пор» — это позиция в журнале сервера, а не время на часах устройства.
4. Конфликт — это отдельный случай
Если приложение правило устаревшую версию, система не выбирает «кто позже, тот прав», когда это может стереть чью-то правку. Конфликт сохраняется, его видно, и вы решаете, что оставить.
