Вступить в клуб →
сложнаявопросAPI и интеграции

Постраничная выгрузка справочника теряет и дублирует записи

Внешняя система выгружает справочник клиентов постранично:

GET /api/v1/clients?limit=1000&offset=0
GET /api/v1/clients?limit=1000&offset=1000

Сортировка — по created_at. В справочнике около 10 млн записей, выгрузка идёт несколько часов, и всё это время записи добавляются и удаляются.

Потребитель жалуется: часть клиентов в выгрузку не попала, часть пришла дважды. Почему так происходит?

  • Потребитель обрабатывает страницы параллельно и нарушает порядок — нужно строго последовательное чтение страниц
  • Смещение считается по текущему состоянию данных: вставки и удаления сдвигают строки — нужна keyset-пагинация по курсору
  • Размер страницы в 1000 записей слишком велик: при странице в 100 записей сдвиги перестанут возникать
  • Причина в сортировке по `created_at`: достаточно сортировать по идентификатору, и смещение станет стабильным

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела