If autocommit is set to true, Kafka will commit offset for messages in a background thread every 10 seconds (IIRC the default).
This means that if Flume is unable to write to channel - messages that we consumed may be lost when autocommit happens.
It also means that if Flume agent crashes, we don't know if we lost messages in the buffer that were not written to channel yet, or if we will read the same messages twice because autocommit did not happen.
If autocommit is disabled, the Kafka Source will commit on every batch. This can slow down ingest rates if the batches are small, but is far safer option.
We recommend autocommit=false. I'll make sure we document this.