...
There is no compatibility issue as we are adding a new field to an existing data structure (DescribeConfigsOptions
). If the field is not specified then the code will behave in same manner as existing code. The same applies to changes to the kafka-topics
tool, as we are adding new options and existing options will continue to behave as is.
Rejected Alternatives
If 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.We considered adding configurationKeys
collection directly to the ConfigResource
object so that user can specify different type of resources and for each one of them they can also specify the configurations to fetch. This avoid the issue #2 mentioned above in the Proposed Changes
section. However, ConfigResource
class is widely used outside of this api (over 300 usages) and is meant to represent a resource that has configurations. The new configuraiton key field will be of no use in all these other cases, so we decided to not pursue this approach.