Uma problema sério de se usar Spring para implementar Kafka Consumer é a ideia que ele passa que o Kafka é uma Queue.

Simplesmente não existe a ideia de ACK e NACK no Kafka Consumer. Existe COMMIT e ele não é na mensagem, mas na partição.

docs.spring.io/spring-kafka...