Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: KIP accepted

Table of Contents

Status

Current stateAccepted

Under Discussion thread: here

Discussion Vote thread: here

JIRA: here

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

First, it enables group configuration for the maximum number of delivery attempts, so error tolerance can be configured for each group. For records which are currently in-flight when the limit is reduced, a final delivery attempt which exceeds the reduced limit may be made. The delivery count limit is not bounds checked at the start of the delivery attempt because fetching is not concerned with archiving records. It's a boundary case that only occurs when the limit decreases and messages are already in-flight. When a delivery attempt completes, we check whether the number of deliveries has reached or exceeded the limit, and archive the records accordingly. If the limit was decreased, it's possible that the limit has been exceeded by onein which case a final delivery attempt is permitted. If the limit was increased, it's possible that a record was nearing its final attempt but now it has more delivery attempts available. The throttling that occurs as the final attempts are made might have been applied previously, but can be relaxed to match the new limit.

...