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