Versions Compared

Key

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

...

The user should be able to see what dynamic configs are supported for each application. However, clients may not necessarily support the same dynamic configs even if they are using the same <user, client-id> entity. A partial solution to this is to store a map of client software names and versions to lists of supported configs in each <user, client-id> entity config. The Java producer and consumer clients can register the configs they they support and the broker can tie the registered keys to the serialized ClientInformation from the RequestContext. This allows compatibility information to be displayed to the user. As long as the user knows what version of client each application is using, they will know which applications will be affected by each dynamic config.

A dynamic client config supported.configs can be added to hold the serialized value of this map.

This allows the compatibility information to be refreshable since `supported.configs` can be deleted from an entity. This could be useful as clients go offline and are upgraded to clean up stale compatibility data. Clients register configs every time they request configs, so the compatibility information will eventually be added again and continuously updated as clients of different versions register configs with the entity. 

...

 The big flaw in storing the registration alongside configs is that the entity config could be updated concurrently if multiple clients with the same entity names register at the same time. A better alternative to

...

this is to store config registrations in an internal topic and perform ad hoc aggregations on the data

...

to gather compatibility information. For example, all versions of clients that registered with an entity along with the supported configs for each version of client could be aggregated and returned to the user in the DescribeClientConfigsResponse. The Java producer and consumer clients can register the configs they they support and the broker can tie the registered keys to the serialized ClientInformation from the RequestContext. This allows compatibility information to be displayed to the user. As long as the user knows what version of client each application is using, they will know which applications will be affected by each dynamic config.

Public Interfaces

...

Admin Client Changes

...