Приложение представляет собой комплексную систему для сбора, анализа данных от датчиков умного дома и управления продажами умных устройств. Система состоит из двух основных компонентов: платформы для анализа телеметрии и электронной торговой площадки
- Гибкая микросервисная архитектура:
- Независимое масштабирование компонентов (например, увеличение ресурсов для warehouse в период распродаж)
- Использование Spring Cloud Eureka для автоматического обнаружения сервисов и балансировки нагрузки
- Spring Cloud Config для централизованного управления конфигурациями всех микросервисов
- Гибридная коммуникация:
- gRPC — для высокопроизводительного взаимодействия в реальном времени
- Apache Kafka — асинхронная обработка событий
- Feign-клиенты — упрощённый REST-обмен между сервисами магазина
- Обработка данных
- Потоковая обработка данных с датчиков в реальном времени
- Сериализация данных через Apache Avro и Protocol Buffers
- Платформа для анализа телеметрии:
- Обрабатывает данные со всех проданных датчиков умного дома
- Трансформирует их в нужный формат
- Хранит описание сценариев: какую команду запустить и при каких показателях от конкретных датчиков
- Определяет необходимость запуска этих сценариев
- Магазин для продажи умных устройств:
- shopping-store — отвечает за информацию о товарах
- shopping-cart — ответственен за корзину пользователя
- warehouse — отвечает за склад
- order - отвечает за заказы пользователей
- payment - расчёт, проведение оплат (эмулятор платёжного шлюза)
- delivery - сервис доставки
- Java 21
- Spring Boot 3.3.2
- PostgreSQL
- Spring Data JPA
- Hibernate ORM
- Apache Kafka
- Apache Avro
- Protocol Buffers
- gRPC
- Spring Cloud Config
- Spring Cloud Eureka
- Spring Cloud Feign
- Spring Cloud Gateway
- Spring Cloud Load Balancer