Skip to content
Kafka Is Fun

Lesson 1 of 3

At-Most-Once Delivery

1 min read

Overview

Messages may be lost but are never redelivered. The design documentation describes implementing it by disabling retries on the producer and committing offsets in the consumer before processing a batch. On the producer side, acks=0 means the producer does not wait for any acknowledgement (so retries have no effect), and acks=1 without retries can lose records: if the leader fails right after acknowledging a record but before the followers have replicated it, the record is lost.

Key configuration

Settingsproperties
acks=0
retries=0
# Consumer: commit the offset before processing the batch,
# for example enable.auto.commit=false and commitSync() first

Production tip

Check yourself

How does the design documentation describe implementing at-most-once delivery?

Sources

Checked against Kafka 4.2 documentation on Oct 2026. Draft: not yet reviewed by a Kafka specialist. Releases move on, so confirm against the current documentation before you act on a number.

Try it in the simulator

Guided scenarios for this module — the simulator opens with the exercise already running.

Prefer a picture? Open the live cluster in 3D and watch records move between producer, brokers and consumers.

Browse all troubleshooting entries