I've been looking into retry policies for my application, which meant I've 
spent some time reading the A6 client retries proposal [1], parts of the 
previous discussion thread [2], and the status code description [3]. Are 
there any of these status codes that are always safe to retry? In the 
terminology from A6, I'm trying to determine which requests have never 
possibly been seen by the server application logic (see transparent 
retries: [1]).

In particular: It wasn't clear from me in A6 how the client will determine 
if a "transparent retry" is safe. Will it use status codes? Something else?


It seems to me that according to the Status Codes document [3] the only 
code that should be safe to always retry, since the server application 
logic could never have executed, is UNAVAILABLE.


As for the opposite case, you should never retry UNIMPLEMENTED, 
UNAUTHENTICATED because they should be "permanent" errors that won't 
succeed when re-executed.


The rest are application dependent, since the request could have executed 
(partially or completely).

Did I get this right?

Thanks!

Evan


[1] 
https://github.com/grpc/proposal/blob/master/A6-client-retries.md#transparent-retries
[2] https://groups.google.com/forum/#!topic/grpc-io/zzHIICbwTZE
[3] https://github.com/grpc/grpc/blob/master/doc/statuscodes.md

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/f70b8e6e-3552-4d86-9ab6-d9e8b13c658e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to