1.3 KiB
1.3 KiB
rule-engine-service (Go)
Статус: пока не реализован.
Зона ответственности:
- Потребляет события «новое показание» из RabbitMQ (асинхронно — здесь надёжность доставки важнее задержки).
- Загружает активные
automation_rulesдля нужной зоны/устройства из PostgreSQL, кэшируя в памяти/Redis, чтобы не ходить в БД на каждое событие. - Оценивает условия правил обобщённо:
sensor_type X operator valueпротив показания — никаких зашитых названий датчиков/устройств, всё берётся из строкиautomation_rules. - При срабатывании: вызывает device-control-service по gRPC (нужен быстрый результат успех/неудача) и публикует событие в notification-service через RabbitMQ (не критично к задержке).
Не входит в зону ответственности: прямое взаимодействие с MQTT или Redis — изменения состояния устройства всегда идут через gRPC API device-control-service.