Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-98432

Explore using high level KafkaConsumer in librdkafka to receive messages

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Atlas Streams
    • Sprint 64

      By using RdKafka::KafkaConsumer class to consume messages across all partitions, we should be able to simplify our kafka source related.

      Some of the advantages would be:
      1) We can consume messages directly from the executor thread, this will allow us to avoid having a per partition thread and the inter thread queues to eventually be able to consume the message in the executor thread
      2) We currently have a high level consumer that we use to commit offsets. We can now consolidate on just one high level consumer
      3) It will be easier to support dynamically added partitions and topics
      4) Using the low level per partition consumer is deprecated and so we can avoid having to use that

      Some of the concerns to investigate are:
      1) Does librdkafka internally try to ensure fairness across partitions wrt message consumption like we today do
      2) Are there any perf issues with using the high level consumer?

            Assignee:
            mayuresh.kulkarni@mongodb.com Mayuresh Kulkarni
            Reporter:
            mayuresh.kulkarni@mongodb.com Mayuresh Kulkarni
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: