You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was reading the processClientPublish... why the QoS response don't take in account the return error from c.broker.Publish call?
If the broker fails to persist to Kafka, isn't it interesting to report back the failure to the publisher to let it retry until it's persisted to Kafka? Here I'm thinking about guaranteeing the message from publisher is persisted, not taking in account the extra bandwidth needed to retransmit until it is persisted.
It's almost like a QoS level "3" or "4": at least once or exactly once, with non-volatile persistence guarantee
To guarantee an extra level of deliverability, as the current implementation is using AsyncProducer it would be interesting to move the switch packet.QoS { ... } code block to Successes() or Errors() channels from AsyncProducer => https://github.com/shopify/sarama/blob/v1.20.1/async_producer.go#L19
I was reading the processClientPublish... why the QoS response don't take in account the return error from c.broker.Publish call?
If the broker fails to persist to Kafka, isn't it interesting to report back the failure to the publisher to let it retry until it's persisted to Kafka? Here I'm thinking about guaranteeing the message from publisher is persisted, not taking in account the extra bandwidth needed to retransmit until it is persisted.
It's almost like a QoS level "3" or "4": at least once or exactly once, with non-volatile persistence guarantee
To guarantee an extra level of deliverability, as the current implementation is using AsyncProducer it would be interesting to move the switch packet.QoS { ... } code block to Successes() or Errors() channels from AsyncProducer => https://github.com/shopify/sarama/blob/v1.20.1/async_producer.go#L19
The text was updated successfully, but these errors were encountered: