Retry policy for a REST client

Tag: rest , azure , load , throttling , retry Author: Artas22 Date: 2013-10-07

There is a multi-instance Azure Web Role serving REST using WebAPI. There are clients in different languages. I want clients not to elevate failures that can be solved by retrying. Examples of retriable errors:

  • There is a peak and service is overloaded. IIS or Azure load balancer rejects the request. I want the client to retry few times with exponentially increasing timeout.
  • An instance of the Web Role accepts the request and crashes before responding.
  • Client experiences connection hiccups. Request of response is lost.

What are symptoms in the given examples from client point of view? What are other retriable scenarios and their symptoms?

(My REST API is retry-friendly i.e. consists of idempotent operations).