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

Implement connectivity API for channels #874

Closed
jtattermusch opened this issue Apr 20, 2020 · 3 comments
Closed

Implement connectivity API for channels #874

jtattermusch opened this issue Apr 20, 2020 · 3 comments
Labels
blocked enhancement New feature or request
Milestone

Comments

@jtattermusch
Copy link
Contributor

(as supported by Grpc.Core).

This new .NET 5 feature could be the key for making it possible to support this: dotnet/runtime#1793

The language-agnostic spec:
https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md

@analogrelay
Copy link
Contributor

Triage Notes: @JamesNK will do a little investigating, but we are likely to be blocked on some limitations of the HttpClient APIs which may not be able to land for 5.0. Putting this in 5.0 for now to track and review as we get more clarity.

@JamesNK
Copy link
Member

JamesNK commented May 5, 2020

Duplicate of #643

@JamesNK JamesNK marked this as a duplicate of #643 May 5, 2020
@JamesNK JamesNK closed this as completed May 5, 2020
@wicharypawel
Copy link

wicharypawel commented May 24, 2020

I have emulated this behaviour by less granular information, observed by existing communication. If anybody would like to have a look at this implementation just let me know.

My implementation is compatible with https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md. I have emulated only allowed transitions specified by documentation (see table in documentation) and have skipped those transitions that I can not emulate right now (eg. my implementation can not make transitin from READY to IDLE, because I don't track inforamtion if "emulated subchannel" is used or not).

What it gives me? It allowed me to port load balancing from gRPC Java to gRPC dotnet. Moreover, in the future when HttpClient would allow to get even more information I would simply swap emulation extension-points with real "OnEvent" implementation. All existing implementation will stay unbroken.

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

No branches or pull requests

4 participants