Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add gRPC support #37

Open
jhalterman opened this issue Mar 15, 2024 · 5 comments
Open

Add gRPC support #37

jhalterman opened this issue Mar 15, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@jhalterman
Copy link
Collaborator

Add gRPC support as a middleware, similar to the RoundTripper based HTTP support.

@jhalterman jhalterman added the enhancement New feature or request label Mar 15, 2024
@szabba
Copy link

szabba commented Apr 1, 2024

This should actually work with the gRPC-compattible connect-go already.

@proost
Copy link

proost commented Jun 6, 2024

I need this feature. could i contribute this?

@jhalterman
Copy link
Collaborator Author

jhalterman commented Jun 6, 2024

Sure - I could review a contribution for this. The failsafehttp package, for comparison, allows you to create either a Failsafe RoundTripper, or a Failsafe Request. It also has a RetryPolicyBuilder for building retry policies that handle common response codes.

I don't have any ideas yet for what a failsafegrpc package might look like, but I'm interested to hear what you think.

@proost
Copy link

proost commented Jun 7, 2024

I plan to use UnaryClientInterceptor and StreamClientInterceptor.

Same as failsafehttp, supporting RetryPolicyBuilder to handle common retryable grpc status code(ex. DEADLINE_EXCEEDED, UNAVAILABLE) is good.

@jhalterman
Copy link
Collaborator Author

That's sounds good. On the server side, we should also allow creating a failsafe tap handle (used via grpc.InTapHandle) that could be used for things like server side circuit breakers or rate limiters.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants