19 lines
1.3 KiB
Markdown
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.
|