[ https://issues.apache.org/jira/browse/KAFKA-14373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17712211#comment-17712211 ]
Daniel Scanteianu commented on KAFKA-14373: ------------------------------------------- possibly a duplicate of https://issues.apache.org/jira/browse/KAFKA-13913 > 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. > 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)