Load balancing behaviour for gRPC clients.
Summary
Callbacks
@callback pick(state :: any()) :: {:ok, GRPC.Channel.t(), new_state :: any()} | {:error, reason :: any()}
@callback update(state :: any(), new_channels :: [GRPC.Channel.t()]) :: {:ok, new_state :: any()} | {:error, reason :: any()}