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

19 lines
1.3 KiB
Markdown

# 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.