The current implementation of batch listener combines all records returned into a list. This loses a lot of information that is provided when the data is returned as a ConsumerRecords. Most importantly, the records are already grouped by topic and partition at this point, which can be useful when implementing processing logic. I would suggest adding additional processing logic to allow the KafkaListener to pass ConsumerRecords as a parameter when batch processing is enabled.