Versions Compared

Key

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

...

Current stateUnder Discussion

Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]

...

  • FindCoordinatorResponse and FindCoordinatorRequests need to update to V3.
  • Requests that contains a single groupID still can be supported.
  • Compatibility issues between old and new versions need to be considered, we should think about how to convert requests from a newer version to a old version.


One-to-many mapping

Today, converting from a higher version API to a lower version, is through the apiVersions in NetworkClient.java to map the API version number for each node, and then use each request's builder.build() to build a lower version request schema. This conversion is a one-to-one mapping, meaning ONE higher version request gets convert to ONE lower version request.

However, this KIP will change this pattern, because it introduces a batching optimization in the requests, meaning combining MANY requests into ONE request. So we need support a one-to-many backward compatible conversion for requests along with the implementation of this KIP.

The most tricky question is, how do we know if a higher version API has a batching optimization.  Discussion is still required and suggestions are highly encouraged, some of the possible solutions involving adding extra fields in AbstractRequest.java.


Rejected Alternatives

  • Update the batching logic in KafkaAdmin.java directly instead of modifying the structure of requests and response.

...