Your team is building a distributed image processing application in AWS that receives high volumes of image transformation requests. Due to the workload's unpredictable nature and the potential for transient failures in downstream services, you need to ensure that the image processing tasks are robust and can recover smoothly after an occasional failure. Which design pattern would be most appropriate to implement for the retry mechanism of this application?
Use of a message queue to collect all requests, without specific error handling strategies for individual tasks.
Retries with exponential backoff and jitter to handle intermittent service disruptions more effectively.
Implementation of a Circuit Breaker pattern to immediately cut off requests to the affected service.
Retries with a constant delay between each attempt to mitigate the impact of failures.