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

Additional transport/x.{Server,Client} types #184

Closed
2 of 4 tasks
peterbourgon opened this issue Feb 11, 2016 · 6 comments
Closed
2 of 4 tasks

Additional transport/x.{Server,Client} types #184

peterbourgon opened this issue Feb 11, 2016 · 6 comments

Comments

@peterbourgon
Copy link
Member

Right now we have transport/http.Server, wrapping an endpoint.Endpoint and exposing it to HTTP. We need the same for other transports: gRPC, Thrift, net/rpc. I believe @basvanbeek is working on gRPC at the moment; this issue is to track the same work for Thrift and net/rpc.

  • transport/http
  • transport/grpc
  • transport/thrift
  • transport/netrpc
@basvanbeek
Copy link
Member

Correct. I will have a pull request ready end of this week and will move on to looking into Thrift and net/rpc.

We should also closely look at additional packages and see if they are not (accidentally) bound to a specific transport. Zipkin is a typical example which currently only supports the http transport. Together with the upcoming pull request I will be adding functions to the Zipkin package for usage with gRPC.

Maybe we should add a feature matrix in the documentation identifying what is supported, being worked on or not supported.

@peterbourgon
Copy link
Member Author

  • Packages under tracing require deep knowledge of the transport, so we need explicit support for all transports. I'm also looking at Swagger in Swagger transport #185.
  • Packages circuitbreaker and ratelimit abstract over endpoint.Endpoint, so no explicit support needed there.
  • Packages under loadbalancer interface with the specific service discovery system and yield endpoints, so nothing needed there.
  • Packages log and metrics are their own thing.

@ghost
Copy link

ghost commented Feb 11, 2016

Is cap'n proto something worth supporting?
On Feb 11, 2016 12:27 AM, "Peter Bourgon" notifications@github.com wrote:

  • Packages under tracing require deep knowledge of the transport, so
    we need explicit support for all transports. I'm also looking at Swagger in
    Swagger transport #185 Swagger transport #185.
  • Packages circuitbreaker and ratelimit abstract over
    endpoint.Endpoint, so no explicit support needed there.
  • Packages under loadbalancer interface with the specific service
    discovery system and yield endpoints, so nothing needed there.
  • Packages log and metrics are their own thing.


Reply to this email directly or view it on GitHub
#184 (comment).

@peterbourgon
Copy link
Member Author

I would be happy to accept a PR for transport/capnproto!

@peterbourgon peterbourgon changed the title Additional transport/x.Server types Additional transport/x.{Server,Client} types Mar 15, 2016
@travissalascox
Copy link
Contributor

@peterbourgon was wondering if this was still something you were wanting? and if so, what do you suggest to do about the net/rpc freezing thing?

@peterbourgon
Copy link
Member Author

transport/netrpc would still be happily accepted, but I guess it would serve primarily as an example. transport/thrift would be quite nice to have, primarily as a way to get the same set of transport-level helpers in Thrift as we have in HTTP and gRPC — by this I mean the ServerBefore, ServerAfter, Finalizer, etc. funcs.

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

No branches or pull requests

3 participants