Правило
Правило — компонент маршрутизации, состоящий из фильтра и 1-5 приемников. К шине могут быть привязаны несколько правил. Каждое событие, поступившее в шину, проходит через все правила шины. Прежде чем срабатывает правило, проверяется, соответствует ли событие условиям, заданным в фильтре. Если соответствует, правило срабатывает, и событие отправляется всем приемникам, указанным в правиле.
Фильтр
Фильтр — выражение в формате jq.firstName == "Ivan"
). Если фильтр пустой, правило считается сработавшим и события отправляются всем приемникам. Если не получается распарсить событие или тело события не удовлетворяет условиям, заданным в фильтре, правило не срабатывает. События в формате, отличном от JSON, можно обработать, но для них недоступна проверка по фильтру.
Приемник
Приемник — это получатель события, например функция Cloud Functions, контейнер Serverless Containers, очередь Message Queue, поток данных Data Streams и т.п.
EventRouter поддерживает гарантию доставки At least once
. Если временно невозможно доставить или получить подтверждение о доставке, EventRouter будет повторно пытаться отправить событие до истечения времени жизни события. Количество повторных попыток и максимальное время жизни события задаются в настройках приемника. Событие, которое не удалось обработать, перемещается в указанную клиентом очередь Dead Letter Queue.
В целях оптимизации EventRouter позволяет задать настройки группирования событий для некоторых типов приемников. В приемнике может быть задан jq-шаблон, в соответствии с которым события преобразовываются перед отправкой в приемник.