Matthias J. Sax created KAFKA-4436: -------------------------------------- Summary: 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)