Skip to content
This repository has been archived by the owner on Aug 12, 2022. It is now read-only.

Tonic support next steps #8

Open
gardnervickers opened this issue Nov 21, 2019 · 0 comments
Open

Tonic support next steps #8

gardnervickers opened this issue Nov 21, 2019 · 0 comments

Comments

@gardnervickers
Copy link
Member

gardnervickers commented Nov 21, 2019

#4 Brought in initial support for Tonic, but it is incomplete and there are several issues which makes it difficult to use.

  1. @LucioFranco mentioned that we should provide our own transport for Tonic. I believe this entails providing an implementation of tower_service::Service which internally dispatches to the Environment handle for new connections.

  2. To improve ergonomics a bit, it would be nice new Environment handles could be registered with a hostname, and the hostname be used to resolve network endpoints. I imaging something like:

    let server1 = runtime.handle("server1.cluster.local");
    let server2 = runtime.handle("server2.cluster.local");
    
    server1.spawn(start_server());
    
    server1.connect("server2.cluster.local").await;
  3. The simulation-tonic bank.rs test currently uses timeouts to drop send/receive futures. This seems to result in occasional errors returned by Tonic.

    server error: grpc-status: Unknown, grpc-message: "http2 error: protocol error: unspecific protocol error detected
    

    It would be good to figure out how these can be better reported to users. Additionally, Tonic
    seems to support [automated reconnects] .
    (https://github.com/hyperium/tonic/blob/master/tonic/src/transport/service/reconnect.rs).
    Simulation users should be able to take advantage of this in their applications.

@gardnervickers gardnervickers changed the title Tonic support v2 Tonic support next steps Nov 21, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant