Проектирование системы отслеживания курьеров

Отделите поток координат, хранилище последних позиций и долговременную историю. Карта запрашивает текущие точки по bounding box, а обновления получает через WebSocket/SSE только для видимой области.

Короткий ответ

Что ответить на собеседовании

Отделите поток координат, хранилище последних позиций и долговременную историю. Карта запрашивает текущие точки по bounding box, а обновления получает через WebSocket/SSE только для видимой области.

Подробный разбор

Ответ с пояснениями

Условие

Требуется разработать архитектуру платформы мониторинга курьеров, учитывающую следующие условия.

Функциональные требования:

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

Нефункциональные требования:

  • Хранить данные о перемещениях курьеров в течение одного года.
  • Максимальная задержка при обновлении информации не должна превышать 60 секунд.

Задача: спроектировать системную архитектуру, включающую:

  • Хранение и обработку географических данных.
  • Выбор подходящего механизма передачи данных в реальном времени.
  • Организацию агрегации и долговременного сохранения маршрутов.
  • Обеспечение масштабируемости решения и минимизации задержек.

Ответ

Отделите поток координат, хранилище последних позиций и долговременную историю. Карта запрашивает текущие точки по bounding box, а обновления получает через WebSocket/SSE только для видимой области.

Клиент курьера отправляет координаты с device timestamp и порядковым номером; сервер аутентифицирует устройство, проверяет диапазоны и дедуплицирует сообщения. Поток через брокер обновляет геоиндекс последних позиций и append-only историю, разбитую по дате/курьеру.

Маршрут читается по courier_id и интервалу времени; старые данные сжимаются и удаляются по годовой retention-политике. Подписки карты фильтруются по ячейкам геосетки, при разрыве соединения выполняется ресинхронизация. Бюджет 60 секунд распределите между частотой отправки, очередью и доставкой. Для офлайн-курьера показывайте время последнего обновления, а не обещайте свежие координаты.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее