zilla icon indicating copy to clipboard operation
zilla copied to clipboard

Define the `mqtt-kafka` client identity from an MQTT topic defined in a AsyncAPI channel

Open vordimous opened this issue 11 months ago • 0 comments

Describe the desired outcome from the user's perspective An AsyncAPI channel will have parameters defined in the spec, which will likely correlate with the mqtt-kafka client identities that can be defined in the zilla.yaml. This configuration could be described in the mqtt-kafka specific options of the anycapi binding to map the existing channel and parameters.

Acceptance criteria

  • An option for defining client identities inside of the mqtt-kafka options

Additional context

AsyncAPI channel definition example

channels:
  itemUpdate:
    address: "item/{itemId}/update"
    title: MQTT Topic for item updates with unique IDs.
    parameters:
      itemId:
        $ref: "#/components/parameters/itemId"
    messages:
      itemUpdate:
        $ref: "#/components/messages/itemUpdate"

zilla.yaml asyncapi proxy binding example:

  mqtt_kafka_proxy:
    type: asyncapi
    kind: proxy
    options:
      specs:
        mqtt-spec: mqtt-asyncapi.yaml
        kafka-spec: kafka-asyncapi.yaml
      mqtt-kafka:
        channels:
          sessions: mqttSessions
          retained: mqttRetained
          messages: mqttMessages
        clients:
          - channel: itemUpdate
            identity: itemId

vordimous avatar Mar 13 '24 18:03 vordimous