retry_exponential_backoff
SKILL.md
retry_exponential_backoff
Implementación de retry con backoff exponencial y jitter para manejar errores transitorios (5xx, timeouts) en las comunicaciones entre el gateway y los servicios downstream.
When to use
Usar en el api_gateway_agent para reintentar automáticamente peticiones fallidas a servicios downstream. Solo reintentar errores transitorios (502, 503, 504), nunca errores de cliente (4xx).
Instructions
- Configurar en Nginx upstream:
proxy_next_upstream error timeout http_502 http_503 http_504; proxy_next_upstream_tries 3; proxy_next_upstream_timeout 5s; - Para lógica avanzada con Lua, implementar backoff exponencial:
local delay = math.min(base_delay * 2^attempt, max_delay) delay = delay * (0.5 + math.random() * 0.5) -- jitter - Base delay: 100ms, max delay: 2s, max retries: 3.
- No reintentar peticiones POST/PUT (no idempotentes) sin confirmación.
- Registrar cada retry en el log con
trace_idy número de intento. - Incrementar contador Prometheus
gateway_retries_totalpor cada retry.
Notes
- El jitter evita thundering herd: todos los clientes reintentando al mismo tiempo.
- Si un servicio devuelve
Retry-Afterheader, respetar ese valor. - Después de max retries, devolver 503 al cliente con mensaje descriptivo.
Weekly Installs
8
Repository
davidcastagnetoa/skillsFirst Seen
11 days ago
Installed on
trae8
gemini-cli8
antigravity8
claude-code8
github-copilot8
codex8