acks — Kafka Producer Configuration
The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent.
Description
The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:
Default Values by Kafka Version
| Kafka Version | Default Value |
|---|---|
| 0.8.1 | 1 |
| 0.8.2 | 1 |
| 0.9.0 | 1 |
| 0.10.0 | 1 |
| 0.10.1 | 1 |
| 0.10.2 | 1 |
| 0.11.0 | 1 |
| 1.0 | 1 |
| 1.1 | 1 |
| 2.0 | 1 |
| 2.1 | 1 |
| 2.2 | 1 |
| 2.3 | 1 |
| 2.4 | 1 |
| 2.5 | 1 |
| 2.6 | 1 |
| 2.7 | 1 |
| 2.8 | 1 |
| 3.0 | all |
| 3.1 | all |
| 3.2 | all |
| 3.3 | all |
| 3.4 | all |
| 3.5 | all |
| 3.6 | all |
| 3.7 | all |
| 3.8 | all |
| 3.9 | all |
| 4.0 | all |
| 4.1 | all |
| 4.2 | all |
Tuning Recommendation
| Profile | Recommended | Why |
|---|---|---|
| producer / throughput | all | Keep acks=all (the Kafka 3.0+ default) to preserve compatibility with enable.idempotence=true. The throughput cost is the ISR round-trip (typically 5-50ms extra latency); for pure throughput pipelines that accept data loss risk, acks=1 is an ALTERNATIVE — but it requires explicitly setting enable.idempotence=false first, otherwise Kafka throws ConfigException at startup. |
| producer / latency | 1 | acks=1 eliminates the ISR round-trip wait: the leader acknowledges as soon as the record is written to its own log, removing the follower replication lag (typically 5-50ms) from the produce critical path. |
| producer / durability | all | acks=all (alias for acks=-1) is the only setting that guarantees a record is written to ALL in-sync replicas before the leader acknowledges; the record survives any single broker failure after the ack is received. This is the Kafka default since 3.0. |
Related Configs
enable.idempotence · retries · max.in.flight.requests.per.connection · min.insync.replicas · delivery.timeout.ms · transactional.id
Manage Kafka configs across all your clusters with Conduktor Console — view, compare, and update configurations in one place.