---
title: "Kafka producer acks=1: acknowledged by the leader only"
description: "With acks=1 the producer is acked once the leader appends, while the high watermark is still 0. A slow follower fetch makes the Kafka durability gap visible."
url: https://monedula.dev/kafka-simulator/scenarios/acks-1-leader-only/
---

# Kafka producer acks=1: acknowledged by the leader only

Scenario 01.1.2 · acks=1: leader-only ack. Producers & EOS · Intermediate · about 2 min · Apache Kafka 4.3.

The producer is acked as soon as the leader appends - without waiting for the followers. Faster than acks=all; the record isn’t replicated yet.

Run it: https://monedula.dev/kafka-simulator/playground/?scenario=01.1.2

## What you start with

With acks=1 the producer is acknowledged the instant the leader writes the record to its own log, without waiting for the followers to replicate it. A deliberately slow replica fetch makes the gap visible: O1 is acked with LEO 1 while the high watermark still sits at 0, then advances once the followers catch up.

## Step by step

1. **Idle · producer ready (acks=1)** (t+0.000s): Three replicas, a producer configured acks=1. [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=01.1.2&t=0)
2. **Acked on the leader · followers not caught up** (t+0.900s): With acks=1 the producer is acknowledged (‘ok’) the moment the LEADER appends O1 - LEO is 1 but the high watermark is still 0 because the followers haven't fetched yet. acks=1 does not wait for replication. [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=01.1.2&t=1)
3. **Followers caught up · HW advances** (t+1.500s): The followers replicated O1 and the high watermark advanced to 1. acks=1 didn't wait for this step - faster than acks=all, but if the leader had died first, O1 could have been lost (see acks=1 durability gap). [Open at this step](https://monedula.dev/kafka-simulator/playground/?scenario=01.1.2&t=2)

## The takeaway

acks=1 trades a window of durability for latency: at ack time the record lives only on the leader, so the high watermark (and any consumer) trails until the followers replicate it.

## Configs in this scenario

- [`acks`](https://kafka.apache.org/43/configuration/producer-configs/#producerconfigs_acks): How many replicas must have a write before the producer counts it as sent: 0 (none), 1 (the leader only) or all (every in-sync replica, the default, and required for idempotence). [How acks works](https://monedula.dev/kafka-simulator/configs/acks/)

## Further reading

- [Apache Kafka documentation](https://kafka.apache.org/43/configuration/producer-configs/#producerconfigs_acks)
