Process Flow - Acknowledgment modes (acks=0, 1, all)
Producer sends message
Check acks setting
Shows how Kafka producer waits for acknowledgments based on the acks setting before continuing.
producer.send(record, acks=0) producer.send(record, acks=1) producer.send(record, acks='all')
| Step | acks value | Action | Wait for | Result | Continue |
|---|---|---|---|---|---|
| 1 | 0 | Send message | No one | No confirmation | Immediately |
| 2 | 1 | Send message | Leader broker | Leader confirms | After leader ack |
| 3 | all | Send message | All in-sync replicas | All confirm | After all acks |
| 4 | - | Stop | - | No more messages | - |
| Variable | Start | After Step 1 | After Step 2 | After Step 3 | Final |
|---|---|---|---|---|---|
| acks | - | 0 | 1 | all | all |
| confirmation_received | false | false | true | true | true |
| producer_continues | true | true | true | true | true |
Kafka producer acks modes: acks=0: No wait, no confirmation, fastest but risky. acks=1: Wait for leader ack, safer. acks=all: Wait for all replicas, safest. Choose based on durability vs latency needs.