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

Reply via email to