Retries Automáticos
O SDK implementa retry automático para certos tipos de erros. Por padrão, o SDK tenta novamente 2 vezes com backoff exponencial curto para:
- Erros de conexão (problemas de rede)
- 408 Request Timeout
- 409 Conflict
- 429 Rate Limit
- Erros >= 500 (Internal Server Error)
Configurando Retries
Você pode configurar o número de retries:
// Configurar o padrão para todas as requisições
const client = new Triglit({
apiKey: 'pk_...',
maxRetries: 0, // Desabilitar retries (padrão é 2)
});
// Ou configurar por requisição
await client.triggers.create(
{ config: {}, name: 'x', type: 'event', workflowVersionId: 'x' },
{ maxRetries: 5 } // 5 tentativas para esta requisição
);
Timeouts
As requisições têm timeout de 1 minuto por padrão. Você pode configurar isso:
// Configurar o padrão para todas as requisições
const client = new Triglit({
apiKey: 'pk_...',
timeout: 20 * 1000, // 20 segundos (padrão é 1 minuto)
});
// Ou configurar por requisição
await client.triggers.create(
{ config: {}, name: 'x', type: 'event', workflowVersionId: 'x' },
{ timeout: 5 * 1000 } // 5 segundos para esta requisição
);
Quando ocorre timeout, um APIConnectionTimeoutError é lançado. Requisições que dão timeout são automaticamente tentadas novamente (conforme configuração de retries).
Rate Limiting
A API do Triglit implementa rate limiting. Quando o limite é excedido, o SDK lança um RateLimitError (429), que é automaticamente retentado conforme a configuração de retries.
Limites de Rate Limit
- Chave Pública (
pk_): 100 requisições por minuto
- Chave Secreta (
sk_): 1000 requisições por minuto
Para operações críticas, considere aumentar o número de retries. Para operações que devem falhar rapidamente, desabilite os retries ou reduza o timeout.