Versions Compared

Key

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

...

The client does not know which ApiVersions versions the broker supports as the ApiVersions is used for this purpose. Today, the client sends an ApiVersionsRequest with the latest schema it is aware of. The broker handles it with the correct version if it knows it or sends back an ApiVersionsResponse v0 with an UNSUPPORTED_VERSION error to the client if it doesn't. When the client receives such error, it retries the whole process with the ApiVersionsRequest v0.  It It means that any fields added after version 0 but before the highest version supported by the broker won't get any additional information about the client if the client uses a newer version that the broker doesn't know about. To be provided. In our case, we would like to ensure that any future version of the ApiVersionsRequest won't impact the availability of the ClientSoftwareName and the ClientSoftwareVersionTo circumvent this, we propose to provide the supported version of the ApiVersionsRequest in the response sent back to the client by populating the existing api_versions field when the version is not supported (ErrorCode equals to UNSUPPORTED_VERSION). This enables the client to use the latest version supported by the broker instead of defaulting to version 0.

...