Retry mechanisms are common in microservices and particularly in cloud applications. They are an easy choice when it comes to software architectures with many services. Since every service is independent and you don’t know what is going on inside, retries are a “best-effort” approach which can help to recover from errors. Because every service is very small, the amount of services goes up and retries are chosen more than ever as the “right solution” for handling errors. But is it really the case? In a stateless world, retries can potentially cause unwanted behaviors and unexpected flows in the application, and they need to be dealt with a lot of thought.