When set to Earliest, the Consumer process could crash after processing messages but before saving its position. After restart, it would then reprocess a few messages it had already processed. This corresponds to the “at-least-once” semantics in the case of Consumer failure. In many cases messages have a primary key and so the updates are idempotent (receiving the same message twice just overwrites a record with another copy of itself).