Перейти к содержимому

Wildberries / WB - 19 (Логистика [системный дизайн])

Актуальность: 3 кв 2025

  • Разработать систему управления перевозками (ТМС), задачей которой является обеспечение доставки груза из точки А в точку В. Возможна доставка через промежуточные точки (хабы), при этом на каждом отрезке пути может быть назначен свой исполнитель (водитель/транспорт). Поездка по маршруту это грузоперевозка. network/general
  • Клиенты (внешние системы): Создают заказы на перевозку через интеграцию; Источники: маркетплейсы, внешние логистические платформы, корпоративные системы. architecture/system-design
  • Логисты (внутренние пользователи): Работают через веб-интерфейс; Управляют заказами, маршрутами, водителями и параметрами системы. go/interfaces
  • Водители (исполнители): Используют мобильное приложение; Получают информацию о маршрутах, точках погрузки/разгрузки; Отправляют статусы (прибыл, загрузил, выехал и т. д.). architecture/system-design
  • Прием заказов: Система должна принимать заказы от различных внешних источников; Формат заказов может отличаться, требуется нормализация входящих данных. sql/schema-design
  • Построение маршрутов: Для каждого заказа формируются маршруты так, чтобы заказ доехал от точки А до точки В; Возможны промежуточные точки (хабы) - заказ может разбиваться на несколько этапов; Каждый этап (маршрут) имеет своего исполнителя. architecture/system-design
  • Типы маршрутов. Система должна поддерживать разные типы маршрутов с различной логикой планирования и исполнения: Магистральная перевозка: Доставка между двумя крупными узлами (городами). Пример: склад → распределительный центр. Первая миля: Несколько точек погрузки → одна точка разгрузки (сбор товаров у поставщиков). Последняя миля: Одна точка погрузки → несколько точек разгрузки (доставка клиентам). Смешанный тип (курьерское/такси-подобное): Несколько точек погрузки и разгрузки, возможна гибкая маршрутизация на лету. algorithms/data-structures
  • Составной маршрут (многоэтапная доставка): Один заказ может включать несколько связанных маршрутов: Пример: A→X→Y→B: A→X - первая миля или смешанный тип; X→Y - магистральная перевозка; Y→B - последняя миля или смешанный тип. Каждый маршрут: Имeeт свой тип; Исполняется отдельно; Связан с другими маршрутами в рамках единого заказа. Система должна обеспечивать: Согласованность между маршрутами; Статусы каждого этапа и заказа в целом; В одном маршруте несколько заказов. architecture/system-design
  • Назначение исполнителя: Система должна находить подходящего исполнителя (водителя/ТС) для каждого маршрута. architecture/system-design
  • Статусы и трекинг: Водители отправляют статусы по маршрутам через приложение; Система должна отображать текущий статус заказа и маршрутов. architecture/system-design
  • Система должна быть способна обрабатывать до 20 миллионов заказов в сутки; architecture/system-design
  • Поддержка до 15 000 активных грузоперевозок (маршрутов) в день; architecture/system-design
  • Одновременная работа до 10 000 активных водителей, подключенных через мобильное приложение; architecture/system-design
  • Горизонтальное масштабирование компонентов: при росте нагрузки система должна масштабироваться без деградации производительности. architecture/system-design