Versions Compared

Key

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

...

Compatibility, Deprecation, and Migration Plan

  • What impact (if any) will there be on existing users?
  • If we are changing behavior how will we phase out the older behavior?
  • If we need special migration tools, describe them here.
  • When will we remove the existing behavior?

Rejected Alternatives

This change is backwards compatible. If the current leader information aren’t set in the ProduceResponse or FetchResponse, then the client falls back to the original behaviour of waiting for the metadata to be refreshed and consistent through the Metadata RPC call.

Rejected Alternatives

Another idea considered was to fetch new leader on the client, using the usual Metadata RPC call. And save time on the Produce path by avoiding the retry delay and instead retry immediately. This was rejected, as single metadata call can be slow, and there can be metadata propagation delays. So immediate retry on the Produce path won't always be fruitfulIf there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.