[
https://issues.apache.org/jira/browse/KAFKA-15277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirk True updated KAFKA-15277:
------------------------------
Labels: consumer-threading-refactor kip-848 kip-848-e2e kip-848-preview
(was: consumer-threading-refactor kip-848 kip-848-client-support kip-848-e2e
kip-848-preview)
> Design & implement support for internal Consumer delegates
> ----------------------------------------------------------
>
> Key: KAFKA-15277
> URL: https://issues.apache.org/jira/browse/KAFKA-15277
> Project: Kafka
> Issue Type: Sub-task
> Components: clients, consumer
> Reporter: Kirk True
> Assignee: Philip Nee
> Priority: Blocker
> Labels: consumer-threading-refactor, kip-848, kip-848-e2e,
> kip-848-preview
>
> As mentioned above, there are presently two different, coexisting
> implementations of the {{Consumer}} interface: {{KafkaConsumer}} ("old") and
> {{PrototypeAsyncConsumer}} ("new"). Eventually, these will be reorganized
> using the delegation pattern. The top-level {{KafkaConsumer}} that implements
> the old protocol will be renamed as {{LegacyKafkaConsumerDelegate}} and
> {{PrototypeAsyncConsumer}} will be renamed as
> {{{}AsyncKafkaConsume{}}}{{{}rDelegate{}}}. It is assumed that neither
> {{{}AsyncKafkaConsume{}}}{{{}rDelegate{}}} nor
> {{{}LegacyKafkaConsume{}}}{{{}rDelegate{}}} will be top-level implementations
> of {{{}Consumer{}}}, but will likely implement an internal interface that is
> better suited to the needs of the top-level {{{}KafkaConsumer{}}}.
> Provide the Java client support for the consumer delegates, including:
> * Create {{ConsumerDelegate}} interface
> * Clone {{{}KafkaConsumer{}}}, rename as {{LegacyKafkaConsumerDelegate}} and
> refactor to implement {{ConsumerDelegate}}
> * Rename {{PrototypeAsyncConsumer}} to {{AsyncKafkaConsumerDelegate}} and
> refactor to implement the {{ConsumerDelegate}} interface
> * Refactor the (original) {{KafkaConsumer}} to remove the core
> implementation, instead delegating to the {{{}ConsumerDelegate{}}}, which
> will be hard-coded to use {{LegacyKafkaConsumerDelegate}}
> * Once available (in KAFKA-15284), use the
> {{ConsumerGroupProtocolVersionResolver}} to determine which delegate to use
> This task is part of the work to implement support for the new KIP-848
> consumer group protocol.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)