grpc-ecosystem / grpc-ecosystem/grpc-spring
Is it possible to apply retry strategy?
- Dominant language
- Java
- Stars
- 3.7k
- Forks
- 858
- PR merge metrics
- No merged PRs in 30d
Description
**The context**
Apply the retry, backoff strategy per RPC call
**The question**
Sometimes we get an error using your library as gRPC client and [Armeria](https://line.github.io/armeria/) as gRPC server. We saw just failed unexpected logs `failed: Connection refused`.
gRPC client Armeria implementation has the ability to configure retries for injected client https://line.github.io/armeria/client-retry.html
gRPC has experimental proposal https://github.com/grpc/proposal/blob/master/A6-client-retries.md
**Stacktraces and logs**
```
Caused by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: ADDRHERE/IPHERE:50051
Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
at io.grpc.netty.shaded.io.netty.channel.unix.Errors.throwConnectException(Errors.java:124)`
```
**Additional information**
So, is it possible to achieve retry behavior using your library? Thank you
Contributor guide
Research direction
Start by reviewing the gRPC client behavior described in this issue and the linked Armeria retry documentation and gRPC A6 client-retries proposal. Determine whether per-RPC retry and backoff can be supported by this library; done should clearly document the supported behavior or define the required feature scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java, spring-boot
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100