Table of Contents |
---|
Status
Current state: Under DiscussionAccepted
Discussion thread: here [TBA]
JIRA: here [TBA]
Motivation
Currently there is a way to pass a KafkaClientSupplier
in KafkaStreams
constructor. This KIP proposes to add a public config in StreamsConfig
to pass the class through config and use reflection to create
...
We will add a public field in StreamsConfig
called streams.kafkadefault.client.supplier
to to configure the KafkaClientSupplier
we use in KafkaStreams. The default value of the config will the classname
of DefaultKafkaClientSupplier
.
We will also add a new public method in StreamsConfig
called getKafkaClientSupplier
. It will return KafkaClientSupplier
based on the config.
Proposed Changes
In KafkaStreams
constructor, we will read the value of streamsdefault.kafka.client.supplier
from StreamsConfig
and if it's not null
and not empty, we . We will use reflection to create an object of given class and throw
an exception if the class type isn't KafkaClientSupplier
. If user provides both the config and supply KafkaClientSupplier
in KafkaStreams
constructor, the config will be ignored and supplied
KafkaClientSupplier
will be used.
Compatibility, Deprecation, and Migration Plan
...