Skip to content

Kafka endpoint only supports a single broker address #805

@badaverse

Description

@badaverse

Describe the issue

The Kafka endpoint currently accepts only a single broker address in its URL format (kafka://host:port/topic). Kafka is typically deployed as a multi-broker cluster, and connecting to a single broker means the client cannot leverage cluster discovery, failover, or load balancing — core benefits of a Kafka cluster setup.

While a single broker address still allows cluster discovery under normal conditions (the client fetches full cluster metadata after the initial connection), it creates a single point of failure for bootstrapping. If that one broker is unavailable, the client cannot establish the initial connection and cluster discovery fails entirely — making it a half-measure for high availability.

The underlying library (github.com/IBM/sarama) already supports multiple broker addresses via NewSyncProducer([]string{...}, cfg), but the endpoint URL parser only extracts a single host:port pair.

Expected behavior

Support specifying multiple broker addresses in the Kafka endpoint URL, following the standard comma-separated format:

kafka://broker1:9092,broker2:9092,broker3:9092/topic-name

All specified brokers should be passed to the Sarama producer so the client can discover the full cluster topology and failover correctly.

Additional context

  • Sarama's NewSyncProducer accepts []string of broker addresses but is currently called with a single-element slice.
  • The SETHOOK command uses commas to separate multiple fallback endpoint URLs. The URL split logic needs to be updated to distinguish between commas inside a single endpoint (Kafka brokers) and commas between separate endpoints.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions