Details
-
Sub-task
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
Description
The consumer refactoring project introduced another Consumer implementation, creating two different, coexisting implementations of the Consumer interface:
- KafkaConsumer (AKA "existing", "legacy" consumer)
- PrototypeAsyncConsumer (AKA "new", "refactored" consumer)
The goal of this task is to refactor the code via the delegation pattern so that we can keep a top-level KafkaConsumer but then delegate to another implementation under the covers. There will be two delegates at first:
- LegacyKafkaConsumer
- AsyncKafkaConsumer
LegacyKafkaConsumer essentially be a renamed KafkaConsumer. That implementation handles the existing group protocol. AsyncKafkaConsumer is renamed from PrototypeAsyncConsumer and will implement the new consumer group protocol from KIP-848. Both of those implementations will live in the "internals" sub-package to discourage their use.
This task is part of the work to implement support for the new KIP-848 consumer group protocol.
Attachments
Issue Links
- relates to
-
KAFKA-15284 Implement GroupProtocolResolver to dynamically determine consumer group protocol
- Resolved
- links to