1. Introdução
O que é o erro 429?
O erro 429 ocorre quando sua aplicação excede os limites de taxa (rate limits) impostos pela API Plug4Market. Essa é uma medida para prevenir sobrecarga e abuso do serviço.Impacto do erro 429 na aplicação
Dependendo do contexto, um erro 429 pode causar falhas em fluxos críticos ou degradar a experiência do usuário. É essencial implementar boas práticas para mitigar esse impacto.
2. Como funciona o Rate Limiting?
Definição de Rate Limiting
O Rate Limiting é o mecanismo que define a quantidade máxima de requisições que podem ser feitas para a API Plug4Market em um determinado período de tempo. Atualmente, o limite é de 100 requisições por minuto por loja (CNPJ).
3. Estratégias de Tratamento do Erro 429
3.1. Implementação de Backoff Exponencial
O backoff exponencial é uma técnica utilizada para lidar com tentativas repetidas em sistemas distribuídos, especialmente em redes, quando ocorrem falhas temporárias. Seu objetivo é reduzir a congestão e evitar sobrecarregar os recursos ao espaçar progressivamente os intervalos entre as tentativas de reconexão ou repetição.
- Início: Define-se um tempo de espera inicial antes da primeira tentativa.
- Incremento exponencial: Após cada tentativa falha, o tempo de espera é multiplicado exponencialmente, geralmente por uma base fixa (como 2).
- Limite máximo: Um tempo máximo de espera é estabelecido para evitar que os intervalos cresçam indefinidamente.
- Jitter (opcional): Para evitar que várias solicitações sejam feitas ao mesmo tempo, um fator aleatório é adicionado ao tempo de espera.
3.2. Respeitar os Limites de Taxa
-
Throttle de requisições: Implemente mecanismos que limitem o número de requisições simultâneas, como filas ou buffers. Dessa forma, é possível controlar melhor o fluxo de chamadas à API.
- Utilize cache: Evite requisições desnecessárias a endpoints que retornam dados estáticos ou com pouca frequência de atualização.
-
Planeje as requisições: Balanceie a carga distribuindo as chamadas em lotes para evitar picos de uso.
- Configure alertas: Identifique rapidamente quando a aplicação começar a receber uma alta frequência de erros 429.
-
Registre logs detalhados: Inclua os cabeçalhos relacionados ao rate limit (“x-rate-limit”, “x-rate-remaining”, etc.) nos logs para facilitar a análise e correção.
Atualização de Produtos
- Atualize produtos apenas quando necessário, ou seja, somente quando houver alteração no SKU.
- Envie apenas os campos necessários, evitando incluir todos os campos sem necessidade. Isso melhora o desempenho e reduz a carga na API.
- Minimize chamadas ao endpoint GET /products/sku em cenários de baixa relevância.
- Utilize webhooks para receber notificações de pedidos. Isso evita consultas desnecessárias e economiza no consumo do rate limit. Segue nossa documentação para auxiliar na configuração do webhook: Webook
Comentários
0 comentário
Por favor, entre para comentar.