Kafka: acks=all without min.insync.replicas still loses data

"All" means all in-sync replicas. If only the leader is in sync, all means one.

Code
# Topic config
min.insync.replicas=2
replication.factor=3
Output
With min.insync.replicas=1, acks=all on a degraded partition
acknowledges a write only the dying leader has seen.

With 2, the producer gets NotEnoughReplicasException instead - fail, do not lose.
Advertisement

Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.

Published 2026-08-11