По порядку Middle Офлайн и синхронизация обновлено

Путь офлайн-изменения до сервера

Вопрос

Пользователь отредактировал заметку без сети. Расставьте шаги.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Изменение записывается в локальную базу, UI обновляется сразу
  2. 2
    Операция отправляется на сервер, при ошибке повторяется с задержкой
  3. 3
    В outbox добавляется операция с ключом идемпотентности
  4. 4
    После подтверждения операция удаляется из outbox, база получает серверную версию
  5. 5
    Синхронизатор запускается при появлении сети или по расписанию системы
Показать ответ и разбор

Коротко

Пользователь видит результат сразу, а надёжность доставки обеспечивает очередь на диске. Серверная версия после подтверждения нужна, чтобы получить серверные поля (id, время, версию) и решить конфликты.

Правильный порядок

  1. 1
    Изменение записывается в локальную базу, UI обновляется сразу
  2. 2
    В outbox добавляется операция с ключом идемпотентности
  3. 3
    Синхронизатор запускается при появлении сети или по расписанию системы
  4. 4
    Операция отправляется на сервер, при ошибке повторяется с задержкой
  5. 5
    После подтверждения операция удаляется из outbox, база получает серверную версию

Разбор

Пользователь видит результат сразу, а надёжность доставки обеспечивает очередь на диске. Серверная версия после подтверждения нужна, чтобы получить серверные поля (id, время, версию) и решить конфликты.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.