xref: /aosp_15_r20/external/grpc-grpc/doc/wait-for-ready.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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