[ https://issues.apache.org/jira/browse/KAFKA-4436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15799096#comment-15799096 ]
Matthias J. Sax commented on KAFKA-4436: ---------------------------------------- I guess we would need a KIP for this anyway -- should we try to do one to get a discussion on dev list? I am afraid, that this will just stall otherwise. > Provide builder pattern for StreamsConfig > ----------------------------------------- > > Key: KAFKA-4436 > URL: https://issues.apache.org/jira/browse/KAFKA-4436 > Project: Kafka > Issue Type: Improvement > Components: streams > Reporter: Matthias J. Sax > Priority: Minor > > Currently, {{StreamsConfig}} parameters must be set "manually" as key value > pairs. This has multiple disadvantages from a user point of view: > - mandatory arguments could be missing > - data types might be wrong > - producer/consumer config parameters could conflict as they might have the > same name (user needs to know to prefix them to avoid conflict) > Those problems have different impact: either a runtime exception is thrown if > the problem is detected (e.g. missing parameter or wrong type) or the > application is just not configured correctly (producer/consumer has wrong > config). > A builder pattern would avoid those problems by forcing the user in the first > place to specify thing correctly (otherwise, it won't compile). For example > something like this: > {noformat} > StreamsConfig config = StreamsConfig.builder() > .setApplicationId(String appId) > .addBootstrapServer(String host, int port) > .addBootstrapServer(String host, int port) > .addZookeeper(String host, int port) > .addZookeeper(String host, int port) > .setStateDirectory(File path) > .setConsumerConfig( > ConsumerConfig.builder() > .setAutoOffsetReset(...) > .build() > ) > .build(); > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)