Проект представляет собой систему управления устройствами умного дома. Система предназначена для обработки телеметрии устройств, маршрутизации данных через хабы и управления коммерческими операциями (заказы, доставка и оплата устройств).
Технологический стек: Java 21, Spring Boot, Spring Data JPA, Spring Cloud(Eureka, Gateway, OpenFeign, ConfigServer), PostgreSQL, Maven, REST, gRPC, Kafka, Docker, Lombok.
Проект реализован с использованием микросервисной архитектуры и организован как multi-module Maven проект.
- инфраструктурные сервисы (infra)
- сервисы обработки телеметрии (telemetry)
- коммерческие сервисы (commerce)
Обеспечивают работу всей микросервисной системы.
Централизованное управление конфигурацией сервисов.
Сервис регистрации микросервисов (service discovery).
Единая точка входа для клиентских запросов.
Функции:
- маршрутизация запросов
- взаимодействие с микросервисами
- централизованный доступ к API
Отвечают за сбор и обработку данных с устройств умного дома.
Получает телеметрию от устройств.
Функции:
- приём данных с устройств
- отправка данных в систему обработки
Агрегирует данные телеметрии.
Функции:
- обработка входящих данных
- подготовка агрегированных показателей
Анализирует телеметрические данные.
Функции:
- анализ показателей устройств
- обработка событий системы
Модуль сериализации сообщений для передачи данных между сервисами. Используется для:
- сериализации сообщений
- стандартизации формата обмена данными
Отвечают за операции, связанные с устройствами.
Управление заказами устройств.
Функции:
- создание заказов
- получение информации о заказах
Обработка платежей.
Функции:
- создание платежей
- обработка оплаты заказов
Управление доставкой устройств.
Функции:
- оформление доставки
- отслеживание статуса доставки
Общие DTO, Feign-клиенты, исключения, перечисления
Сервисы взаимодействуют между собой с использованием:
- gRPC — для межсервисного взаимодействия
- REST API — для внешних клиентских запросов через API Gateway
- Apache Kafka — для обработки потоков событий и телеметрии