THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Current state: "Under Discussion"
Discussion thread:
JIRA:
Motivation
To gives more flexibility, builders should be provided for the following objects
- KafkaProducer
- KafkaConsumer
- KafkaStreams
These builders will give a way to construct these objects using different arguments/combinations without having to add a new constructor every time a new parameter is required.
From a user point of view, builders could be used as follow
Code Block | ||||
---|---|---|---|---|
| ||||
final var consumerBuilder = new ConsumerBuilder<String, MyPojo>(<MAP_OR_PROPERTIES_OR_CONFIG>)
.withKeyDeserializer(<KEY_DESERIALIZER>)
.withValueDeserializer(<VALUE_DESERIALIZER>)
.withInterceptors(<LIST_OF_INTERCEPTORS>)
.withMetricsReporter(<METRICS_REPORTER>)
.build();
final var producerBuilder = new ProducerBuilder<String, MyPojo>(<MAP_OR_PROPERTIES_OR_CONFIG>)
.withKeySerializer(<KEY_SERIALIZER>)
.withValueSerializer(<VALUE_SERIALIZER>)
.withInterceptors(<LIST_OF_INTERCEPTORS>)
.withPartitioner(<PARTITIONER>)
.withMetricsReporter(<METRICS_REPORTER>)
.build();
final var kafkaStreamsBuilder = new KafkaStreamsBuilder(<TOPOLOGY>, <MAP_OR_PROPERTIES_OR_CONFIG>)
.withProducerInterceptors(<LIST_OF_PRODUER_INTERCEPTORS>)
.withConsumerInterceptors(<LIST_OF_CONSUMER_INTERCEPTORS>)
.withTime(<TIME>)
.withKafkaClientSupplier(<KAFKA_CLIENT_SUPPLIER>)
.withMetricsReporter(<METRICS_REPORTER>)
.build(); |
This KIP can also be seen as the continuity of the KIP-832.
Proposed Changes
// TODO
Compatibility, Deprecation, and Migration Plan
...