automation // REST APILAB

429 + Retry-After com Exponential Backoff

Reduza a pressão quando o SFMC aplicar rate limit em uma rota em vez de martelar com retries imediatos.

api429retry-afterbackoff
Context Pack →Abrir Workspace →
Trust & provenanceLAB
Nível de evidênciaLABFontes oficiais1Outras fontes0Última verificação2026-10-05

O nível de evidência descreve minha experiência com o conteúdo. Fonte oficial descreve contrato/documentação da plataforma. Observação de produção não deve ser tratada automaticamente como limite oficial.

EvidênciaLAB
Dificuldadeintermediário
Verificado2026-10-05
Use quando

Integrações externas chamando endpoints REST em volume relevante.

async function callWithBackoff(request, maxRetries = 5) {
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
    const res = await request();
    if (res.status !== 429) return res;

    const retryAfter = Number(res.headers.get('retry-after'));
    const delayMs = Number.isFinite(retryAfter)
      ? retryAfter * 1000
      : Math.min(30_000, 1000 * (2 ** attempt));

    await new Promise(r => setTimeout(r, delayMs));
  }
  throw new Error('Rate limit retry budget exhausted');
}
Por que funciona

A Salesforce recomenda respeitar HTTP 429 e Retry-After enquanto aplica exponential backoff.

Notas operacionais

Adicione jitter em sistemas distribuídos para vários workers não tentarem novamente na mesma borda.

Prefira rotas batch quando disponíveis.

Fontes / verificação