gRPC-Go: Built-in Client Retry Mechanism
gRPC recently deprecated its grpc.Dial in favor of the new grpc.NewClient. The latter performs no I/O and lazily connects when you are eventually doing a RPC call. It changed the way we perform retry in tetra, the CLI of Tetragon because we previously used the connect that happened at the client creation (with grpc.Dial and WithBlock) to make sure the connection was possible, and retry in this case. This wasn鈥檛 extremely resilient but had the good taste of being in a single place for all subcommands that will make an RPC call: during client creation....