Assume: 1. A Kafka cluster with 3 brokers: B0, B1, B2 2. A single topic with a single partition 3. default.replication.factor = 3 4. min.insync.replicas = 3 5. acks = all for the producers
Let: 1. B0 be the controller of the cluster and the leader of the partition for simplicity 2. ISR = [B0 B2] Now two things happen: 1. The cluster loses its connection to the ZK ensemble (network partition) 2. B2 dies B0 realizes that B2 hasn't fetched the most recent messages in the past 10 seconds. But B1 (which is part of the replication set) does. But B0 is unable to write the update ISR set to ZK given the network partition. Does B0 return an ACK to the producer, or is it blocked until it can update the ISR set in ZK? Thank you, Kostas