1*cc02d7e2SAndroid Build Coastguard WorkergRPC Wait for Ready Semantics 2*cc02d7e2SAndroid Build Coastguard Worker============================= 3*cc02d7e2SAndroid Build Coastguard Worker 4*cc02d7e2SAndroid Build Coastguard WorkerIf an RPC is issued but the channel is in `TRANSIENT_FAILURE` or `SHUTDOWN` 5*cc02d7e2SAndroid Build Coastguard Workerstates, the RPC is unable to be transmitted promptly. By default, gRPC 6*cc02d7e2SAndroid Build Coastguard Workerimplementations SHOULD fail such RPCs immediately. This is known as "fail fast," 7*cc02d7e2SAndroid Build Coastguard Workerbut usage of the term is historical. RPCs SHOULD NOT fail as a result of the 8*cc02d7e2SAndroid Build Coastguard Workerchannel being in other states (`CONNECTING`, `READY`, or `IDLE`). 9*cc02d7e2SAndroid Build Coastguard Worker 10*cc02d7e2SAndroid Build Coastguard WorkergRPC implementations MAY provide a per-RPC option to not fail RPCs as a result 11*cc02d7e2SAndroid Build Coastguard Workerof the channel being in `TRANSIENT_FAILURE` state. Instead, the implementation 12*cc02d7e2SAndroid Build Coastguard Workerqueues the RPCs until the channel is `READY`. This is known as "wait for ready." 13*cc02d7e2SAndroid Build Coastguard WorkerThe RPCs SHOULD still fail before `READY` if there are unrelated reasons, such 14*cc02d7e2SAndroid Build Coastguard Workeras the channel is `SHUTDOWN` or the RPC's deadline is reached. 15