Для реализации системы «Арнод» мы спроектировали распределенную микросервисную архитектуру, где каждый стек решает задачу, в которой он максимально эффективен:
- Потоковая телеметрия (Go + NATS): Прием "сырых" данных с GPS/ГЛОНАСС трекеров транспорта осуществляют легковесные микросервисы на Go. Они очищают и валидируют координаты, после чего отправляют их в высокопроизводительный брокер сообщений NATS. Через NATS координаты транслируются напрямую в веб- и мобильные интерфейсы клиентов, минуя запись в основную базу данных, что исключило её перегрузку.
- Бизнес-логика и ERP-контур (Symfony): Модули расчета стоимости рейсов, распределения бюджетов, складского учета и управления заявками реализованы на Symfony. Архитектурная зрелость фреймворка позволила построить чистую доменную модель (DDD), готовую к долговременному развитию проекта.
- Шина асинхронных задач (RabbitMQ) и кэш (Redis): Для распределения тяжелых фоновых процессов (генерация путевых листов, закрытие отчетных периодов, массовые рассылки) используется RabbitMQ. Оперативные данные и сессии хранятся в Redis.
- Интерфейсы (Vue 3 + Flutter): Рабочее место диспетчера реализовано как SPA-приложение на Vue 3 с интерактивными картами и дашбордами. Мобильные клиенты для водителей (получение маршрутных листов, отметки о доставке, чат с базой) написаны на Flutter, что гарантирует одинаково стабильную работу на любых смартфонах.