Skip to content

Broker-to-broker event routing across namespaces #2050

@devguyio

Description

@devguyio

Problem
Using the Broker objects, it's not straight forward how to deliver a set of events across namespaces. Specifically when you have a many-to-many relationship between Event Sources and Brokers. Using existing primitives, one would need to funnel in all events through channels/subscriptions across namespaces to the namespace broker, where they will be finally filtered by the triggers, which is very inefficient in resource utilization given the potential that thousands of events might get unnecessarily routed and persisted without real subscribers.

Persona:
Which persona is this feature for?

  • Event Consumers (efficient events routing)
  • Event Producers
  • Systems integrators

Exit Criteria
Given brokers A and B are in two different namespaces, Events can be routed from A to B given that there are Trigger object for Broker B with matching filters.

Time Estimate (optional):
7 days

Additional context (optional)
In Kyma, there exists many event sources in a single, admin controller namespace due to admin provided credentials etc, and there are many interested subscribers (functions and microservices) across multiple namespaces. To solve this, we have an Event Bus with a RESTful API and that leverages Knative Channel objects for fanning out events to subscribers across multiple namespaces using URIs if and only if access control per namespace allows it (we use an EventActivation CRD) and there're existing subscribers to this event type.

Trying to solve this using existing primitives, we had attempts such as the following

knative-broker-bridge

which ends up in doing the filtering at a very late stage.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions