Статья
Курсор — контрольная точка, а не номер страницы
Разберитесь, как приватный журнал синхронизации продолжается без повтора последней страницы и возврата к началу.
- cursor
- reliability
- sync
Приватная синхронизация — упорядоченный журнал. Курсор указывает последнюю уже выданную запись, поэтому клиент продолжает работу после прерывания без догадок о смещении.
Продвигайтесь на каждой непустой странице
Даже последний непустой ответ содержит курсор своей последней записи. Клиент сохраняет его только после успешного применения страницы.
Спросите ещё один раз
Запрос после сохранённого курсора возвращает пустую страницу. Такой ответ подтверждает текущий конец журнала и не отправляет клиента к первой записи.
Не смешивайте семантику каталога
У публичной пагинации каталога другая модель чтения, и на последней странице там допустим null. Общая абстракция пагинации скрыла бы разные гарантии восстановления этих потоков.