Hello! I'm curious as to what exactly happens in a certain scenario with kafka, and was unable to find it clearly documented on the website anywhere (or I'm just blind).
When producing messages into kafka, the producer can specify a timeout parameter (see producer API here: https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-ProduceAPI) I'm curious as to what exactly happens when this timeout is exceeded? For example, I have a multi-node cluster, my topic has a replica factor of 3, and my producer is configured with RequiredAcks = -1, and Timeout=100. My producer connects to the leader and submits a message. The API doc says that the write on the leader will not abide by the timeout defined in the request. So lets assume that the write is successful on the leader within 10ms. Now the leader goes to its two replicas and attempts to get the data written there. Lets say the first replica writes within 10ms, but the 2nd replica times out (takes over 100ms). The leader then responds back to the producer with error code 7. In this situation does that mean that the write into the cluster failed and does not exist on any node? Or does it mean that the write exists on the leader and replica #1, but not replica #2? Hopefully my question is clear, Thanks! Stephen