KAFKA-14405: Log a warning when users attempt to set a config controlled by Streams #20149
+152
−104
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses KAFKA-14405 JIRA and builds upon significant work done from #12988.
Initial Problem
It's too easy for users to try overriding one of the client configs that Streams hardcodes, and since we just silently ignore it there's no good way for them to tell their config is not being used. Sometimes this may be harmless but in cases like the Producer's partitioner, there could be important application logic that's never being invoked.
When processing user configs in StreamsConfig, we should check for all these configs and log a warning when any of them have been set
New Problem
During the work in #12988, it was found that -
main.consumer.allow.auto.create.topics=true
instead ofconsumer.allow.auto.create.topics=true
).Summary of Work from previous PR
ProducerConfig.PARTITIONER_CLASS_CONFIG
. But this needs a KIP as per the discussion herePending Work
group.id
,client.id
,client.instance.id
,auto.offset.reset
as per this reviewQuestion - I wanted to ensure if this looks good before I proceed to cover the
Pending Work
section OR do we need a new PR for the other configs (apart from tests)?