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 maxwhen max.in.flight.request.per.connection==1. An in-flight batch expire when delivery.timeout.ms has passed since the batch creation irrespective of whether the batch is in flight or not. 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.

...

Setting an explicit value of retries should be done with caution. If all the retries are exhausted, the request will fail and all the contained batches within the request (even if delivery.timeout.ms has not fully elapsed). In essence, batch expires when either delivery.timeout.ms has elapsed or the request containing the batch has failed, whichever happens first. (Note: Due to change in the default value of retries from 0 to MAX_INT and the existing default value of maxof max.in.flight.request.per.connection==5, reordering becomes a possibility by default. To prevent reordering, set maxset max.in.flight.request.per.connection==1).

...