Перейти к содержанию

Архитектура продукта

ЛогиХаб построен как набор микросервисов за общим API Gateway. Каждый сервис владеет своей схемой данных в PostgreSQL; межсервисное взаимодействие – синхронно по REST через шлюз и асинхронно через брокер событий.

Контейнерная схема архитектуры ЛогиХаба

Слой Компоненты Взаимодействие
Клиенты Веб-кабинет, приложение водителя, Telegram-бот, дашборд HTTPS-запросы с JWT-токеном к API Gateway
Шлюз API Gateway Аутентификация, ограничение частоты запросов, маршрутизация к сервисам
Микросервисы Заказы, Склад, Маршрутизация, Трекинг, Уведомления Синхронно – REST, асинхронно – события через RabbitMQ
Данные PostgreSQL, Redis, RabbitMQ, объектное хранилище Собственная схема БД у каждого сервиса, кэш и сессии в Redis

Ответственность сервисов

Сервис Ответственность Публикуемые события
Заказы Приём и проверка заявки, расчёт стоимости, договор-счёт, закрытие заказа order.created, order.paid, order.closed
Склад Резервирование, комплектация, маркировка, ТТН cargo.packed, cargo.shipped
Маршрутизация Построение маршрута, выбор транспорта и водителя route.planned, route.replanned
Трекинг Статусы перевозки, геопозиция, прогноз ETA и задержек delivery.delayed, delivery.completed
Уведомления Доставка сообщений клиентам и сотрудникам по каналам –

Архитектурные решения (ADR)

№ Решение Причина
ADR-001 Микросервисы вместо монолита Независимые релизы команд, масштабирование «Трекинга» в пиковый сезон
ADR-002 PostgreSQL как основная СУБД Транзакционность заказов и расчётов, зрелые инструменты репликации
ADR-003 Redis для кэша и сессий Быстрый ответ API Gateway, хранение токенов и ETA
ADR-004 Событийная интеграция через RabbitMQ Слабая связанность сервисов, гарантированная доставка уведомлений
ADR-005 OpenAPI-first Контракты API согласуются до разработки, клиенты генерируются автоматически