Enabling an Idempotent Producer

Describes how to enable an idempotent producer. Idempotence refers to exactly-once message delivery semantics.

To enable idempotence, the enable.idempotence configuration must be set to true. When set, the retries configuration defaults to Integer.MAX_VALUE and the Acks configuration defaults to all.

The idempotence producer option is set by setting the enable.idempotence value of true passed through the ProducerConfig class.

Constant Field Values
org.apache.kafka.clients.producer.ProducerConfig
Modifier and Type Constant Field Value
public static final java.lang.String ENABLE_IDEMPOTENCE_CONFIG enable.idempotence

Example Code Snippet:

props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, true);
NOTE
The default is false, which retains at-least-once message delivery semantics.
TIP
There are no API changes for the Idempotent Producer functionality, so existing applications do not need to be modified except to enable the producer configuration property.