[ 
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)

Reply via email to