Which THREE Azure services or features can be used to implement retry logic for transient failures when calling an external API from a .NET Core application?
Many Azure SDKs, such as those for Storage, Cosmos DB, and Service Bus, incorporate built-in retry policies to handle transient faults automatically. These policies typically employ strategies like exponential backoff with jitter, allowing client applications to gracefully recover from temporary network issues or service unavailability without custom code. Developers can often configure parameters like the maximum number of retries and the delay between attempts, ensuring robust communication with Azure services.
Why this answer
Azure SDK retry policies (A) are correct because the Azure SDK for .NET includes built-in retry policies (e.g., ExponentialRetry, FixedRetry) that automatically handle transient failures such as 408, 429, 500, 502, 503, and 504 responses when calling Azure services or external endpoints through the SDK pipeline. Azure Logic Apps retry policy (B) is correct because Logic Apps actions support configurable retry policies (default, exponential interval, fixed interval) with parameters like count, interval, and maximumInterval, which can wrap HTTP calls to external APIs and retry on transient errors. Polly library (C) is correct because Polly is a .NET resilience and transient-fault-handling library that provides policies such as Retry, WaitAndRetry, and WaitAndRetryAsync with exponential backoff and jitter, and it integrates directly into .NET Core applications via HttpClientFactory.
Azure Traffic Manager (D) is not correct because it is a DNS-based global traffic distribution service that routes users to endpoints; it does not implement application-level retry logic for outbound API calls. Azure Front Door (E) is not correct because it is a layer-7 global load balancer and CDN that can retry requests at the edge for inbound traffic, but it does not provide retry logic inside a .NET Core application calling an external API.
Exam trap
The trap here is that candidates may confuse network-level traffic management services (Traffic Manager, Front Door) with application-level retry mechanisms, assuming they handle transient failures automatically when they only provide routing and load balancing.