kafka-grpc Binding
kafka-grpc Binding
Zilla runtime kafka-grpc binding.
kafka_grpc_proxy:
  type: kafka-grpc
  kind: remote_server
  entry: kafka_cache_client
  options:
    acks: leader_only
    idempotency:
      metadata: idempotency-key
    correlation:
      headers:
        service: zilla:service
        method: zilla:method
        correlation-id: zilla:correlation-id
        reply-to: zilla:reply-to
  routes:
    - when:
        - topic: requests
          reply-to: responses
          method: example.EchoService/*
      exit: grpc
      with:
        scheme: http
        authority: localhost:7151
Summary
The remote_server kind kafka-grpc binding adapts kafka topic streams to grpc request-response streams.
The grpc request message is received from a requests topic, with a zilla:correlation-id header, initiating a grpc service method invocation. When the grpc response received, a response message is produced to the responses topic, with the same zilla:correlation-id header to correlate the response.
Note that grpc requests and responses can be unary or streaming.
Configuration
kind*
enum[ "remote_server" ]
Behave as an kafka-grpc remote_server.
kind: remote_server
options
object
kafka-grpc-specific options for adapting kafka topic streams to grpc request-response streams.
options:
  acks: leader_only
  idempotency:
    metadata: idempotency-key
  correlation:
    headers:
      service: zilla:service
      method: zilla:method
      correlation-id: zilla:correlation-id
      reply-to: zilla:reply-to
options.acks
enum[ "none", "leader_only", "in_sync_replicas" ]
The kafka acknowledgment mode.
options.idempotency
object
Metadata header used to specify the idempotency key when adapting kafka topic streams to grpc request-response streams.
idempotency.metadata
string| Default:"idempotency-key".
The grpc metadata header name for idempotency key.
options.correlation
object
Kafka request message headers injected when adapting kafka topic streams to grpc request-response streams.
correlation.headers
object
Kafka request message correlation header names used when adapting kafka topic streams to grpc request-response streams.
headers.service
string| Default:"zilla:service"
Kafka header name for grpc service.
headers.method
string| Default:"zilla:method"
Kafka header name for grpc method.
headers.correlation-id
string| Default:"zilla:correlation-id"
Kafka header name for request-response correlation identifier.
headers.reply-to
string| Default:"zilla:reply-to"
Kafka header name for reply-to topic.
routes
arrayofobject
Conditional kafka-grpc-specific routes for adapting kafka topic streams to grpc request-response streams.
routes:
  - guarded:
      test:
        - echo:messages
    when:
      - topic: requests
        reply-to: responses
        method: example.EchoService/*
    exit: grpc
    with:
      scheme: http
      authority: localhost:7151
routes[].guarded
objectas named map ofstring:stringarray
Roles required by named guard.
routes:
  - guarded:
      test:
        - echo:messages
routes[].when
arrayofobject
List of conditions (any match) to match this route when adapting kafka topic streams to grpc request-response streams.
 Read more: When a route matches
routes:
  - when:
      - topic: requests
        reply-to: responses
        method: example.EchoService/*
when[].topic
string
The name of a Kafka topic for requests.
when[].reply-to
string
The name of the Kafka topic for correlated responses.
when[].method
string
Pattern matching the fully qualified name of a grpc service method, in the format <service>/<method> allowing wildcard * for the method to indicate any method.
routes[].exit*
string
Default exit binding when no conditional routes are viable.
routes:
  - when:
    ...
    exit: kafka_cache_client
routes[].with
object
Kafka parameters for matched route when adapting grpc request-response streams to kafka topic fetch streams.
with:
  scheme: http
  authority: localhost:7151
with.scheme
string
The grpc request scheme.
with.authority
string
The grpc request authority.
* required

