Skip to content

Commit 1aa68e8

Browse files
070 - Router SPI
Introduce a Router plugin API for routing Kafka requests across multiple upstream clusters. Routers form a DAG of named routes, each targeting a cluster or another router, enabling use cases like union clusters, principal-aware routing, and topic splicing. Key design elements: - Router/RouterFactory plugin lifecycle mirroring Filter/FilterFactory - VirtualNode as opaque broker identity across multi-cluster topologies - RouterContext for sending requests and building responses - Opt-in TopologyService with async discovery and snapshot-based results - Per-route filter chains and SASL plugin placement rules - Deterministic node ID mapping via V = id + S × t formula - Configuration model with clusterDefinitions, routerDefinitions, and a discriminated union target property on routes and virtual clusters Signed-off-by: Tom Bentley <tbentley@redhat.com> Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com> Assisted-by: Claude Sonnet 4.5 <noreply@anthropic.com> Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8988d36 commit 1aa68e8

1 file changed

Lines changed: 857 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)