Requires synchronous and single-threaded, so only 1 channel and 1 outstanding RPC per channel for now. No open-loop for now