Yes, that sentence is the source of all that confusion. I learned it was misleading when reading part of the source code. There are also some stack overflow answers that clarify auto-commit.
I think you are right, the documentation probably does not say you must process all records in the batch when enabling auto-commit. This is a best-practice you can infer from all the examples. The examples are always single-threaded though. We should mention the requirement explicitly as that part of the contract the application must obey to use auto-commit safely. That would cover the multi-threaded case too. -----Original Message----- From: Adam Bellemare [mailto:adam.bellem...@gmail.com] Sent: Friday, February 1, 2019 8:42 AM To: dev@kafka.apache.org Subject: Re: Why is enable.auto.commit=true the default value for consumer? Hi Clement & Colin Thanks for the discussion on this. I think the biggest confusion is how the enable.auto.commit documentation says "If true the consumer's offset will be periodically committed in the background." @Clement, you mention that there is documentation about what you must do with auto-commit. I am looking at https://kafka.apache.org/documentation and I cannot seem to locate it. Could you point me to it? I would be fine with making a simple PR to improve the documentation on this - I think it will help straighten things out. Thanks again, Adam