Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleKeyRangeBasedAssignor
inputTopicPartitionspartitionsPerTopic := Set<TopicPartition>
brokerAllowIC := BooleanMap<String, Integer>
Subscriptions := Map<String, Subscription>
brokerAllowIC := Boolean

NumberOfPartitions := size of inputTopicPartitions



This step unblocks the potential to allow a dynamic consumer group scaling beyond partition level capping.

...

Code Block
languagejava
titleConsumer.java
public Consumer {
  ...

 /**
  * Manually assign a list of partitions with specific key ranges to this consumer. If a partition maps to an empty list,
  * that means a full ownership of the partition.
  */
  void assign(Map<TopicPartition, List<Tuple<int64, int64>>> partitionWithKeyRanges);
}

To recognize whether a consumer is allowed to subscribe as key-share

Code Block
languagejava
titleSubscription.java
public Subscription {
  
}

To leverage the key based filtering in a group subscription mode, we will also add callbacks the ConsumerRebalanceListener to populate key range assignments if necessary:

...