image

Bootcamps ilimitados e +750 cursos pra sempre

70
%OFF
Article image
Ellen Silva
Ellen Silva28/08/2026 12:10
Compartilhe
IBM Bob: IA de Nível Empresarial para Desenvolvedores e Tech LeadersRecomendados para vocêIBM Bob: IA de Nível Empresarial para Desenvolvedores e Tech Leaders

Retry não é só tentar de novo: o que todo dev deveria saber.

    Quando comecei a estudar Retry, a ideia parecia bem simples:

    A API falhou? Tenta de novo.

    E, de certa forma, é isso mesmo.

    Mas descobri que existe um detalhe importante:

    Tentar novamente pode resolver uma falha, mas também pode piorar ainda mais o problema.

    Quando tentar de novo realmente ajuda?

    Imagine que sua aplicação precisa buscar informações em outra API.

    Você faz a chamada e ela falha porque o serviço ficou indisponível por alguns segundos.

    Se desistirmos logo na primeira falha, o usuário recebe um erro.

    Mas talvez, se esperarmos um pouquinho e tentarmos novamente, funcione normalmente.

    É justamente aí que o Retry pode ajudar:

    1ª tentativa: falhou
    
    Espera um pouco...
    
    2ª tentativa: falhou
    
    Espera novamente...
    
    3ª tentativa: funcionou
    
    

    Em vez de deixar uma falha momentânea interromper todo o processo, damos algumas chances para a aplicação se recuperar.

    Mas não é só colocar várias tentativas

    Essa foi a parte que mais me chamou atenção.

    Imagine que um serviço já está sobrecarregado e começa a falhar.

    Se todas as aplicações começarem a tentar novamente várias vezes e sem nenhum intervalo, aquele serviço vai receber ainda mais requisições justamente quando já está com problemas.

    Ou seja, podemos piorar aquilo que estávamos tentando resolver.

    Por isso, uma estratégia melhor seria:

    Tentou e falhou
    
    Espera 1 segundo
    
    Tenta novamente
    
    Falhou outra vez
    
    Espera um pouco mais
    
    Tenta novamente
    
    

    E, claro, precisa existir uma hora de parar.

    Retry precisa ter controle. Não adianta simplesmente tentar até funcionar.

    Nem todo erro precisa de outra tentativa

    Essa parece óbvia depois que entendemos, mas eu não tinha parado para pensar nisso.

    Se buscamos algo que não existe e recebemos um 404, tentar mais cinco vezes provavelmente não vai fazer aquilo aparecer.

    Agora, se um serviço ficou temporariamente indisponível, uma nova tentativa pode fazer sentido.

    Então uma pergunta simples pode ajudar bastante antes de usar Retry:

    Esse erro pode realmente se resolver sozinho daqui a alguns segundos?

    Se a resposta for não, provavelmente ficar tentando novamente não vai resolver o problema.

    E como isso aparece no Java?

    No Spring, podemos utilizar ferramentas como o OpenFeign para nossa aplicação conversar com outras APIs.

    Mas mais importante do que decorar configurações é entender o que queremos que aconteça:

    Chamei outra API
    
    Falhou
    
    Vale tentar novamente?
    
    Sim
    
    Espera um pouco
    
    Tenta novamente
    
    Funcionou: continua
    
    Falhou novamente: respeita o limite
    
    

    Quando entendemos o comportamento que queremos, aprender a configuração fica muito mais fácil.

    Em vez de decorar código, começamos a entender por que aquela configuração existe.

    3 coisas que vou lembrar antes de usar Retry

    1. Nem todo erro merece outra tentativa

    Primeiro preciso entender por que a chamada falhou.

    Se o problema não vai desaparecer sozinho, repetir a mesma chamada provavelmente não vai ajudar.

    2. Não tentar várias vezes imediatamente

    Se o serviço está enfrentando uma instabilidade, bombardear ele com novas chamadas pode piorar a situação.

    Esperar um pouco entre as tentativas dá uma chance para o serviço se recuperar.

    3. Sempre ter um limite

    Retry não significa:

    "Tente até funcionar."

    Para mim, faz mais sentido pensar assim:

    "Existe uma chance dessa falha ser temporária, então vou tentar novamente de forma controlada."

    Essa diferença parece pequena, mas mudou bastante a forma como passei a enxergar esse recurso.

    No fim, Retry é mais decisão do que configuração

    Antes eu enxergava Retry como uma configuração para fazer a aplicação tentar novamente quando algo desse errado.

    Agora vejo que a parte mais importante acontece antes de configurar qualquer coisa.

    Precisamos entender:

    Por que falhou?

    Vale tentar novamente?

    Quanto tempo devo esperar?

    Quando devo parar?

    Depois que essas respostas estão claras, a configuração começa a fazer muito mais sentido.

    No fim, usar Retry não é simplesmente ensinar a aplicação a insistir. É ensinar a aplicação a saber quando vale a pena tentar novamente.

    E você, já usou Retry em algum projeto ou também achava que era simplesmente "deu erro, tenta de novo"?

    _____________________

    Indicação de livro

    Release It!

    Autor: Michael T. Nygard

    Uma boa leitura para quem quer entender melhor por que aplicações falham e como podemos desenvolver sistemas mais preparados para lidar com esses problemas.

    Compartilhe
    Recomendados para você
    CI&T - Java AI Copilot
    Itaú - Java com Inteligência Artificial
    Nublify - Primeiros passos em IA e Cloud
    Comentários (0)
    Recomendados para vocêIBM Bob: IA de Nível Empresarial para Desenvolvedores e Tech Leaders