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

PoC: client channels #11023

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft

PoC: client channels #11023

wants to merge 5 commits into from

Conversation

bsideup
Copy link

@bsideup bsideup commented Mar 16, 2024

This PR (based off #3987) proposes a potential implementation for Client Channels that allow server call services on connected clients.

The current implementation uses a bi-directional call as a transport by implementing an in-memory Netty channel due to the complexity of the underlying representation. A custom Marshaller is used for zero copy operations, to prevent additional buffers from being created. That is achieved with a custom Drainable implementation and a HasByteBuffer consumer.

The final version should of course be using a custom implementation of both ManagedChannel and InternalServer.

See grpc/grpc#14101 for the main discussion.

Copy link

linux-foundation-easycla bot commented Mar 16, 2024

CLA Not Signed

@bsideup bsideup changed the title PoC: client channel PoC: client channels Mar 16, 2024
@bsideup
Copy link
Author

bsideup commented Mar 16, 2024

Quick Update:

I was able to connect a grpc-go based client (exposing service) to grpc-java Netty-based server that successfully called a service defined on the client:
https://gist.github.com/bsideup/49a031c3360a68e4542e5597669fe51d

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

Successfully merging this pull request may close these issues.

None yet

1 participant