Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The "timer" for each batch starts "ticking" at the creation of the batch. Batches expire in order when max.in.flight.request.per.connection==1. An inflight in-flight batch expire when delivery.timeout.ms has passed since the batch creation irrespective of whether the batch is in flight or not.   

Public Interfaces

  •  This only adds a new producer configuration: delivery.timeout.ms.

Compatibility, Deprecation, and Migration Plan

However, the producer waits the full request.timeout.ms for the in-flight request. This implies that user might be notified of batch expiry while a batch is still in-flight.

Public Interfaces

  •  This only adds a new producer configuration: delivery.timeout.ms.

Compatibility, Deprecation, and Migration Plan

  1. Default value of retries will be changed to MAX_INT. Setting an explicit value of retries other than MAX_INT is deprecated. Use delivery.timeout.ms instead. If retries is set to a low value, exhaustion of retries for a request will not cause the contained batches to fail if delivery.timeout.ms has not passed. In effect retries config is ignoredretries – current meaning.
  2. request.timeout.ms – current meaning, but messages are not expired after this time. I.e., request.timeout.ms is no longer relevant for batch expiry.
  3. Default value of delivery.timeout.ms = 30 120 seconds

Validation

This configuration is backwards compatible. Report WARN log messages for various combinations of Throw ConfigException for timeouts that don't make sense. (E.g., delivery.timeout.ms < linger.ms + request.timeout.ms + retry.backoff.ms).

...