Тестовое задание 15 Jun 2026
regulus - выбор из миллиона id с серверным порядком
- Express 5
- TypeScript
- React 19
- dnd-kit
- Docker
Два окна над виртуальным списком в миллион id с серверным порядком, drag-сортировкой и самописной очередью дедупликации и батчинга. Express 5 + React 19.
Задача
Дать пользователю листать, фильтровать и вручную упорядочивать список из миллиона id, оставаясь отзывчивым - и при этом нигде не держать весь миллион в памяти, а заданный порядок переживал бы фильтрацию и перезагрузки.
Подход
Миллион нигде не материализуется: базовый диапазон остаётся обычным целочисленным интервалом, на лету сливается с отсортированным массивом пользовательских id и страницами отдаётся по id-курсору с бюджетом сканирования на запрос - так даже разреженный фильтр не подвешивает event loop. Состояние живёт в памяти сервера, общее для всех, а каждая запись идёт через самописную очередь дедупликации и батчинга.
Результат
Двухоконный селектор с виртуализованным списком и drag-сортировкой, плавный на миллионе строк. Express 5 и React 19 в одном процессе, vitest на очередь и пагинацию, в Docker за Caddy.