grpc-ecosystem / grpc-ecosystem/grpc-spring

Is it possible to apply retry strategy?

Open
#347 21 comments 2 reactions 0 assignees View on GitHub
documentation enhancement help wanted question
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.