Files
home_automatization/services/rule-engine-service
2026-07-26 17:06:30 +05:00
..

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.