The main way we solve this is by enabling client side keep-alives, which
IIRC run once every 45 second if there are no active RPCs. These are
implemented in gRPC as HTTP/2 Ping frames. I can't say I know where this
is for Go, but in Java this is an actively used feature.
On Monday, November
We ended up adding the following to `Dial':
grpc.WithKeepaliveParams(keepalive.ClientParameters{
Time: 10 * time.Second,
})
This required bumping grpc to a commit that included the fix in
https://github.com/grpc/grpc-go/pull/2307 which set