Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-14246 Update threading model for Consumer
  3. KAFKA-15277

Design & implement support for internal Consumer delegates

    XMLWordPrintableJSON

Details

    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

          Activity

            People

              kirktrue Kirk True
              kirktrue Kirk True
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: