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