If a producer produces a request with RequiredAcks of -1 (wait for all
ISRs), and the broker returns a RequestTimedOut error, are the messages
still committed locally on the leader broker? The protocol states "we will
not terminate a local write" which implies to me that even when
RequestTimedOut is returned, the producer can basically assume delayed
success (except perhaps in the case of an immediate broker failure).

However I see in the code that TimeoutException extends RetriableException,
which means (if I understand correctly) that the producer will retry the
request in this case. Wouldn't this lead to duplicate messages?

Thanks,
Evan

Reply via email to