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.
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 viaNewSyncProducer([]string{...}, cfg), but the endpoint URL parser only extracts a singlehost:portpair.Expected behavior
Support specifying multiple broker addresses in the Kafka endpoint URL, following the standard comma-separated format:
All specified brokers should be passed to the Sarama producer so the client can discover the full cluster topology and failover correctly.
Additional context
NewSyncProduceraccepts[]stringof broker addresses but is currently called with a single-element slice.