min.insync.replicas sets the minimum number of in-sync replicas required before Kafka considers a record committed. The leader counts as a replica, so the setting controls how many replicas must be available when a produce request arrives. section 2.9.1
Use the setting to constrain writes when replicas fall behind:
- With the default value of 1, a topic with replication factor 3 and acks=all can accept a record after only the leader acknowledges it. section 2.9.1
- With min.insync.replicas=2, the leader accepts a produce request only when at least two replicas are in sync. section 2.9.1
- If the threshold is unavailable, the leader rejects the request with NotEnoughReplicasException, and the producer retries it. section 2.9.1
Replication factor 3 with min.insync.replicas=2
Two followers lag enough to leave the in-sync replica set. Although the producer uses acks=all, the leader refuses a new batch because only one replica remains in sync. The write succeeds after enough replicas catch up, increasing durability while potentially reducing availability. section 2.9.1 section 4.2.1
Figure 2.17 Setting the min ISR to a value greater than 1 increases data durability.
Use the replication illustration to trace how requiring more than one in-sync replica increases data durability. section 2.9.1


