[
https://issues.apache.org/jira/browse/KAFKA-18053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17900174#comment-17900174
]
Matthias J. Sax commented on KAFKA-18053:
-----------------------------------------
Hey [~ableegoldman] – you might want to chime in on current discussion for
KIP-1111, which does propose to add a new config that must go into
`StreamsBuilder`, and there is a idea to actually deprecate these configs, as
it should not have been configs to begin with.
> Clean up TopologyConfig and API for supplying configs needed by the topology
> ----------------------------------------------------------------------------
>
> Key: KAFKA-18053
> URL: https://issues.apache.org/jira/browse/KAFKA-18053
> Project: Kafka
> Issue Type: Improvement
> Components: streams
> Reporter: A. Sophie Blee-Goldman
> Priority: Major
> Labels: needs-kip
>
> As mentioned briefly in KIP-1112, the current API around configs which need
> to be applied prior to building the topology can be cumbersome and easy to
> implement incorrectly. This leads to awkward code and confused users at best,
> and applications that silently drop some configs at worst.
> There are three main problems we want to solve:
> # The most serious issue is that the KafkaStreams constructor requires the
> application configs whereas the topology can be built without them, so most
> people will only pass their configs into KafkaStreams. However certain
> configs have to be passed into the topology as well, which is easy for users
> to miss and leads to a silent misconfiguration that can easily go unnoticed
> # Over time we've added several new APIs for configs that need to be applied
> at different/earlier stages of the topology building process. So now users
> are faced with multiple ways of passing these configs into the topology, and
> configs that may work with any of them or may need to be used with a specific
> API
> # At some point we also made the TopologyConfig class public, which was
> originally intended only for internal use. Furthermore it's only purpose was
> to separate configs between different topologies, a feature that has now been
> deprecated and will soon be removed, at which point TopologyConfig serves no
> purpose and should be removed as well. Unfortunately, the newest APIs for
> passing configs into a topology are a Topology and StreamsBuilder constructor
> that have a TopologyConfig parameter, rather than the StreamsConfig
> parameter used in the previous API (ie StreamsBuilder#build). This is
> unnecessary since StreamsConfig would work just as well, and in fact a
> TopologyConfig has to be constructed from a StreamsConfig so users are just
> adding a wrapper layer
> As of filing this ticket, the list of topology-specific configs is:
> * topology.optimization
> * processor.wrapper.class
> * default.dsl.store
> * dsl.store.suppliers.class
--
This message was sent by Atlassian Jira
(v8.20.10#820010)