When building any application that interacts with services across the public internet there are potential error conditions that need to be handled. The first and most obvious one is the need to handle transient network errors. These are best managed by deploying a retry strategy for all request attempts. Although there are a number of different retry strategies that can be deployed we recommend using the Exponential Backoff strategy. Other common retry strategies include fixed interval and incremental.
For C#/.NET Core Developers, Polly is an excellent resilience and transient-fault-handling library.
Similarly to handling transient network errors, request timeouts may occur due to network conjestion or from executing an API request that results in a long running database query. You can use the debug meta data included with each response to locate and analyse potential long running requests.
GET, PUT, and DELETE requests are by their nature idempotent, but POST requests are not. Whilst Actionstep implements varying degrees of request and content validation from a data duplication perspective, this is not always possible or applicable, and so Developers need to manage making non-idempotent requests in their applications taking into account the above factors.