elixir-grpc / grpc

An Elixir implementation of gRPC
https://hex.pm/packages/grpc
Apache License 2.0
1.38k stars 212 forks source link

Support Client Retries #239

Open jeffutter opened 2 years ago

jeffutter commented 2 years ago

Is your feature request related to a problem? Please describe.

It would be nice if elixir-grpc supported client-retries in the same way that Java/Go/C/.NET clients do.

Describe the solution you'd like

Implementing retries to the spec laid out here: https://github.com/grpc/proposal/blob/master/A6-client-retries.md

Additional context I'm mainly starting this feature request to judge interest in this feature and guage appetite for developing it. I suspect there would be some pre-work necessary like Service Config support.

There is potential that my company may be able to put some time into supporting this. However, I wanted to get a feel for if maintainers would find it valuable and if there were any thoughts on whether elixir-grpc is in a good place to receive the feature or if there are other initiatives in progress that might preclude this.

polvalente commented 2 years ago

Hi, Jeffrey, thanks for the proposal!

We're currently in the process of redefining the client side a little bit. #199 will make it easier to implement a new client adapter, and then I want to add a client based on a library other than Gun because the library has been stuck on a pre-release for v2.

I think that after that we can work on retries for sure. Perhaps there's a way to implement that in an adapter-agnostic way, though, so you might wanna look into this.

If you also see that there's still some required work before that like you mentioned, we can draw a road map for this feature in the issues tracker and tackle it in that way.

What do you think?