Маршрутизация событий
Сопоставление по room, type и KV. Multi-route fan-out, временные правила и окна обслуживания.
Платформа маршрутизации событий — роутинг, шаблоны, политики и доставка. Создано для закрытых инфраструктур, где важны наблюдаемость, предсказуемость и контроль.
Инфраструктурные команды отправляют события из backup-систем, мониторинга, cron-задач и внутренних сервисов. Обычно маршрутизация таких уведомлений быстро превращается в набор скриптов, исключений и ручных правил.
IONotify централизует этот путь: приём → очередь → маршрутизация → политики → рендеринг → доставка → журналирование. Конфигурация хранится в YAML, поведение предсказуемо, секреты не попадают в логи.
Сопоставление по room, type и KV. Multi-route fan-out, расписания и окна обслуживания.
Jinja2 на канал с 4-уровневым fallback: маршрут → room → default → встроенный.
Deduplication и rate limits на NATS KV с опцией fail-open.
Telegram и SMTP email с изоляцией ошибок по каналам.
Структурированные документы OpenSearch: приём, маршрутизация, шаблон, доставка.
Read-only UI оператора: события, сбои, unrouted, снимок конфигурации.
Доставка через бота с шаблонами на маршрут и экранированием HTML/Markdown.
SMTP с шаблонами темы и тела, изоляция провайдеров.
Устойчивая очередь между API и worker — приём с учётом backpressure.
Поисковый аудит: приём, маршрутизация, шаблон, результаты доставки.
{
"room": "backup.failed",
"type": "critical",
"message": "Backup job nightly-db failed on db01",
"kv": { "host": "db01", "job": "nightly-db" },
"source": { "host": "db01", "app": "backup-agent" },
"correlation_id": "job-20260517-001"
}curl -sS -X POST http://localhost:8080/api/v1/events \
-H "Content-Type: application/json" \
-H "X-IONotify-Token: dev-token" \
-d '{"room":"backup.failed","type":"critical","message":"Backup failed","kv":{"host":"db01"}}'