Главная/ Проекты/ Логистическая компания

Разработали сервис для равномерной обработки потоков данных

В рамках сотрудничества с логистической компанией, название которой мы не можем раскрывать по договору NDA, Evrone реализовал три проекта, основной из которых касался организации обмена данными через корпоративную шину.

20 августа 2026

Наш клиент — логистическая компания, которая занимается перевозкой, сопровождением и складским хранением грузов в странах СНГ, Азии и Ближнего Востока. По собственным данным, владеет более чем 100 тыс. кв. м складских площадей и 40 офисами в семи странах мира. 

Компания столкнулась с проблемой производительности СУБД. Данные в базу приходили из ETL-системы Apache NiFi, были неравномерными по нагрузке, обрабатывались синхронно и пробуждали фоновые процессы, что сильно замедляло или вообще блокировало базу данных. С запросом на поиск решения клиент пришел в Evrone.

Шина

Обмен данными с B2B-клиентами идет через NiFi. Ранее данные приходили в разных форматах, они трансформировались в нужный формат, и затем загружались в базу по заданным правилам. Некоторые клиенты могли отправлять тысячи мелких событий, а кто-то загружал огромные JSON, что приводило к одному результату — блокировке работы базы данных. Это влияло и на остальную инфраструктуру, например, блокировалась работа 1С, который получал данные из СУБД. 

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

Заказчик сделал в NiFi ответвление от основного бизнес-процесса, которое отправляло сообщения в нужной конфигурации в нужный топик в Kafka. Оттуда наш сервис забирает сообщения группами, обрабатывает по бизнес-правилам и загружает в базу данных. Это стабилизирует нагрузку, плюс, архитектуру решения легко масштабировать с ростом потока информации. Можно настроить интервал, с которым сервис будет забирать сообщения из шины данных, что позволяет заказчику быть гибким в конфигурации. Это решение уже реализовано и применяется заказчиком.

Если ваши информационные системы не справляются с растущим потоком данных или пиковыми нагрузками, мы поможем разобраться в архитектуре, найти узкие места и спроектировать масштабируемое решение.

Расскажите нам о задаче — специалисты Evrone предложат подход с учетом вашей инфраструктуры и бизнес-процессов.

Интеграция

После реализации первого проекта заказчик обратился к нам за консультацией по поводу интеграции нового клиента, который планировал дистрибуцию через логистическую компанию. Требовалось создать скрипты для маппинга, то есть привести данные, которые передавал клиент в формат данных, принятых в компании нашего клиента. В процессинговых блоках NiFi описывается пайплайн и флоу, по которым событие валидируется, трансформируется и уже потом загружается в базу — классический ETL-процесс. При этом для клиента ничего не меняется, он просто отправляет в систему данные в своем привычном формате. Над этой задачей мы поработали вместе с их штатными аналитиками.

Трекинг отправлений

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

Evrone предложил реализовать сервис снова на Python, поскольку все ETL-инструменты и скрипты в NiFi написаны на этом языке и он в целом идеально подходит для подобных задач. Плюс, фреймворк Django предлагает целый набор готовых решений и удобную админку, через которую менеджеры могут смотреть и редактировать информацию, внутри сервиса все сущности связаны между собой. Мы сделали демо-версию для клиента и после согласований приступили к реализации. 

Основной задачей был разбор событий из 1C — основной системы, где аккумулируются данные по перемещению грузов. Для этой задачи мы применили ту же шину, о которой рассказали выше. Это универсальное и готовое решение, которое упростило и ускорило разработку, и может быть использовано внутри всей логистической экосистемы. Для этого трек-сервиса есть отдельная СУБД, чтобы чтобы разделить зоны ответственности и работать в изолированно от основных систем.

Фронтенд сервиса сделан на классическом React. С помощью библиотеки swagger-typescript-api настроили генерацию типов через YAML. В интерфейсе табличное отображение данных, раскрывающиеся списки и несколько модальных окон. Для этого сервиса мы сделали отдельный хедер, похожий на тот, что используется на основном сайте. 

Команда и сроки

Первая часть проекта была реализована нам за 9 месяцев работы.

Состав команды на стороне Evrone включал в себя:

  • DevOps лид
  • Backend разработчики (Python) - 2
  • Devops инженеры - 2
  • Frontend разработчик (React) - 1
  • Delivery менеджер -1

Планы на будущее

Мы продолжаем сотрудничество  и готовимся реализовать новый сервис для трекинга грузов для авторизованных пользователей. От публичного он будет отличаться более полными данными и наличием личного кабинета для авторизованных пользователей. Внутри будут данные о юрлицах, возможность прикрепить сопровождающие документы и детально проследить путь груза с отметками времени. Кабинет будет использоваться не только клиентами, но и закрепленными менеджерами. Пока мы уточняем требования, к этой работе также планируем подключить собственных аналитиков и дизайнеров.

Evrone занимается не только разработкой, мы также готовы проконсультировать бизнес по техническим вопросам. Если вам нужна помощь с автоматизацией логистики или нужно кастомное ПО, заполните форму внизу и мы сразу свяжемся с вами.

Будем на связи
Прикрепить файл
Максимальный размер файла: 8 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.