Un reintento puede ayudar cuando una conexión se interrumpe brevemente, pero puede empeorar la interrupción cuando todos los clientes repiten el trabajo a la vez. Una política de reintento confiable es selectiva, limitada y consciente de si es seguro repetir la operación.

Decidir si un reintento es seguro

  • Vuelva a intentar fallas de conexión temporales y respuestas de sobrecarga documentadas, no todos los errores de cliente o de validación.
  • Vuelva a intentar una mutación solo cuando el servidor admita un mecanismo de idempotencia o cuando sea seguro repetir la operación.
  • Respete el Reintento después cuando el servidor lo proporcione.
delay = min(maxDelay, baseDelay * 2^attempt) + randomJitter

Establecer un límite firme

Elija un número máximo de intentos y una fecha límite general. Deténgase cuando la persona que llama cancele, informe claramente el error final y registre una métrica para el recuento de reintentos en lugar de registrar datos confidenciales de la solicitud.

Pruebe la política con un reloj determinista y una secuencia de resultados simulados. Confirme que una interrupción sostenida no genera trabajo ilimitado ni mantiene al usuario esperando indefinidamente.