Calculadora de Backoff Exponencial

Elige una estrategia de reintento — jitter completo, jitter igual, jitter descorrelacionado, o determinista — define el retraso base y el tope, y previsualiza los próximos 8 intentos con el retraso por intento, el tiempo acumulado y la ventana del sorteo aleatorio. Exporta el calendario como TSV, JSON, o como una función JavaScript lista para copiar y pegar. Puro del lado del cliente, sin subir nada, sin rastreo.

Mín
Media
Máx
Total
# Retraso Acumulado Anclaje (base × 2^n, con tope) Sorteo aleatorio [mín, máx]
Ajusta el formulario para previsualizar el calendario.

Exportar

Copia o descarga el calendario para revisión de código, un runbook o un cuaderno. TSV se pega directamente en Google Sheets o Excel; JSON viaja redondo con JSON.parse; la pestaña JS te da una function delay(attempt) lista para copiar y pegar según la estrategia que elegiste.

// Pulsa cualquiera de los botones de arriba para ver la exportación aquí.

Cómo se comparan las estrategias

Las cuatro crecen el retraso ancla como base × factorintento, limitado por tu máximo. Difieren en cómo traducen ese anclaje en una duración de espera real.

Jitter completo
delay = aleatorio(0, anclaje) — maximiza la dispersión, ideal cuando muchos clientes reintentan al mismo tiempo.
Jitter igual
delay = anclaje / 2 + aleatorio(0, anclaje / 2) — un reparto 50/50 entre determinista y aleatorio; un calendario más calmado.
Jitter descorrelacionado
delay = min(tope, base + aleatorio(0, prev × factor − base)) — cada intento depende del anterior; la recomendación del AWS Architecture Blog.
Determinista
delay = anclaje — sin jitter, totalmente predecible. Lo más fácil de razonar, lo más fácil de sincronizar.

La biblioteca (y esta página) son deterministas dado un RNG fijo, así que puedes copiar un calendario en un test fixture sin volver a ejecutarlo. El botón de vista previa vuelve a sortear con Math.random() para una sensación rápida de "cómo se vería en producción".