Skip to main content

Module routed

Module routed 

Source
Available on crate feature transport only.
Expand description

Per-key routing transport for data originators.

Routes send(key, payload) to different transport backends based on the key. Used by dfe-receiver and dfe-fetcher where data-based routing determines the destination (topic, endpoint, stream).

All other DFE stages (transforms, loader, archiver) use simple 1:1 transports and do NOT need this.

§Config

transport:
  output:
    type: routed
    default: kafka
    routes:
      events.land:
        type: grpc
        grpc:
          endpoint: "http://loader-land:6000"
      events.load:
        type: kafka
      audit.land:
        type: grpc
        grpc:
          endpoint: "http://archiver:6000"
    kafka:
      brokers: ["kafka:9092"]

§Usage

let sender = RoutedSender::from_config("transport.output").await?;
// Routes to different backends based on key
sender.send("events.land", payload).await;  // → gRPC to loader-land
sender.send("events.load", payload).await;  // → Kafka topic
sender.send("audit.land", payload).await;   // → gRPC to archiver
sender.send("unknown", payload).await;      // → default (Kafka)

Structs§

RoutedSender
A routing transport that dispatches send() to different backends based on the key parameter.