Remove internal server from reverse tunnel
Currently kas sends requests via reverse tunnel by establishing an in-memory connection to the internal gRPC server. This server does request routing - finds a suitable gateway tunserver (kas) and then sends the request to it.
I think it should be possible to eliminate the internal server by implementing the logic in a grpc.ClientConnInterface
. This will be a huge simplification that is, in fact, not hard to implement. One fewer hop for traffic is good for reliability and latency.
I'm not sure why I implemented this as a server handler and not the client-side mechanism in the first place