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

Reply via email to