This pattern focuses on how an application should react when a cloud service responds to a programmatic request with a busy signal rather than success.
This pattern reflects the perspective of a client, not the service. The client is programmatically making a request of a service, but the service replies with a busy signal. The client is responsible for correct interpretation of the busy signal followed by an appropriate number of retry attempts. If the busy signals continue during retries, the client treats the service as unavailable.
Dialing a telephone occasionally results in a busy signal. The normal response is to retry, which usually results in a successful telephone call.
Similarly, invoking a service occasionally results in a failure code being returned, indicating the cloud service is not currently able to satisfy the request. The normal response is to retry which usually results in the service call succeeding.
The main reason a cloud service cannot satisfy a request is because it is too busy. Sometimes a service is “too busy” for just a few hundred milliseconds, or one or two seconds. Smart retry policies will help handle busy signals without compromising user experience or overwhelming busy services.
Applications that do not handle busy signals will be unreliable.
The Busy Signal Pattern is effective in dealing with the following challenges:
Your application uses cloud platform services that are not guaranteed to respond successfully ...