In the serverless compute part of our application, there are following three areas where a transient fault can be experienced:
- Input triggers
- Calls to external services
- Writes to data stores
Let us discuss each in more detail.
The Retry logic for input triggers
Azure Functions (or, more precisely, the underlying WebJobs SDK) implement the Retry/Circuit Breaker patterns for triggers that may experience transient faults.
For a Blob-trigger processing failure, a retry policy is implemented by the WebJobs SDK. Upon a new Blob upload, a message is added to a queue and dequeued by the Blob-trigger function. If a Blob-trigger function fails, the message is returned to the queue, and the processing is retried. ...