Reconciliação Financeira com Exponential Backoff
Quando se processa alto volume de transações, APIs de terceiros falham e limites são atingidos. Veja como evitar bloqueios usando backoff exponencial.
September 30, 2026 (1mo ago)
2 min read
Construir motores de reconciliação de pagamentos é, provavelmente, uma das tarefas mais exigentes na engenharia de software. O desafio não está em fazer o pagamento passar, mas sim no que acontece quando a rede falha, o webhook não chega, e o sistema tem de descobrir sozinho se o dinheiro foi ou não descontado.
Head-of-line Blocking
Imagine que o sistema tem de confirmar 1.000 transações pendentes. Ele começa a consultar a API do gateway (ex: Stripe, M-Pesa). De repente, o gateway fica lento. O seu reconciliador fica preso na transação #1 a aguardar timeout. Enquanto isso, a transação #1000, que foi feita há 10 segundos, não é confirmada porque a fila está estagnada.
A este fenómeno damos o nome de Head-of-Line Blocking.
Priorização Inteligente
Para evitar isto, a reconciliação não deve ser feita do "mais antigo" para o "mais recente". Na verdade, transações recentes têm muito mais probabilidade de ser concluídas rapidamente. Priorizar os pagamentos dos últimos minutos garante que os clientes que estão ativamente à espera com a aplicação aberta recebam a confirmação imediata.
O Poder do Exponential Backoff
Se uma transação antiga continua pendente, não faz sentido consultá-la a cada minuto. É aí que entra o Exponential Backoff.
- Verifica 1 minuto após a falha.
- Não respondeu? Verifica aos 5 minutos.
- Não respondeu? Verifica após 15 minutos.
- E assim sucessivamente, até 12 ou 24 horas.
Esta técnica protege a sua infraestrutura de ser bloqueada por rate limits (limites de API) impostos pelos gateways. Não desperdice poder de processamento (CPU) e limites de rede com transações que já entraram num buraco negro. Poupe a sua infraestrutura e deixe a matemática gerir o retry.
Aqui estão alguns outros artigos que você pode achar interessantes.

O Poder da Idempotência em APIs Financeiras
Como evitar transações duplicadas em e-commerce e fintechs através de guardas de idempotência e operações atómicas na sua base de dados.

Tratamento Elegante de Erros e Sessões Abandonadas em Webviews
Como lidar de forma estruturada com utilizadores que desistem a meio de fluxos importantes e evitar falhas severas nas integrações de Webview e iFrames.
