Hi,
I encountered the issue documented in the jira KAFKA-3932<https://issues.apache.org/jira/browse/KAFKA-3932?jql=text%20~%20%22round%20robin%20consumer%22>. Upon studying the source code and the PIP<https://cwiki.apache.org/confluence/display/KAFKA/KIP-41%3A+KafkaConsumer+Max+Records>, I think the issues is the statement in PIP: "As before, we'd keep track of which partition we left off at so that the next iteration would begin there." I think it should NOT use the last partition in the next iteration; it should pick the next one instead. If this behavior is agreeable, the simplest solution to impose the order to pick the next one is to use the order the consumer.internals.Fetcher receives the partition messages, as determined by completedFetches queue in that class. To avoid parsing the partition messages repeatedly. we can save those parsed fetches to a list and maintain the next partition to get messages there. Does it sound like a good approach? If this is not the right place to discuss the design please let me know where to engage. If this is agreeable I can contribute the implementation. Thanks, CH