[ https://issues.apache.org/jira/browse/KAFKA-14373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631396#comment-17631396 ]
Luke Chen commented on KAFKA-14373: ----------------------------------- [~scanteianu] , please remember to propose a [KIP|https://cwiki.apache.org/confluence/display/kafka/kafka+improvement+proposals] for this improvement. This sounds good to me. > provide builders for producer/consumer > -------------------------------------- > > Key: KAFKA-14373 > URL: https://issues.apache.org/jira/browse/KAFKA-14373 > Project: Kafka > Issue Type: Improvement > Components: clients > Reporter: Daniel Scanteianu > Priority: Minor > > creating a producer/consumer involves looking up the consts for kafka > configuration, and usually doing a lot of googling for what the possible > values are for each configuration. Providing a builder where there are named > methods to set various configuration, with meaningful parameters (ie: enums > for configurations that can only have a few values), and good javadoc would > make it much easier from developers working from ides (such as intellij, > eclipse, netbeans, etc) to discover the various configurations, and navigate > to the documentation for the various options when creating > producers/consumers. > A salient consumer example: > Examples: > Pseudocode: > Producer: > > {code:java} > ProducerBuilder(String bootstrapUrl) > { ... } > ProducerBuilder withTransactionsEnabled(String transactionalId){ ... // > internally sets a flag so that transactions are initialized when producer is > built } > Producer build(){ ... } > {code} > > Salient Consumer Example: > {code:java} > /** > * > * @param strategy : if the strategy is set to NONE, then an error is thrown > if a valid offset is passed to seek (etc.), if it is set to EARLIEST, then > the consumer will seek to beginning (etc). > */ > ConsumerBuilder withAutoOffsetResetStrategy(OffsetResetStrategy strategy){ > ... } {code} > > where OffsetResetStrategy is an enum with 3 values > {code:java} > public enum OffsetResetStrategy {EARLIEST,LATEST, NONE}{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)