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
