Cómo distinguir un reintento de una solicitud de negocio nueva
Un reintento conserva la intención y los parámetros aprobados; una solicitud nueva cambia el compromiso que quieres ejecutar.
Un reintento conserva la intención y los parámetros aprobados; una solicitud nueva cambia el compromiso que quieres ejecutar. Decide esa frontera en el modelo de negocio y regístrala antes del envío. No la deduzcas del tiempo transcurrido ni de que el usuario haya pulsado el botón otra vez.
Distingue solicitud, versión e intento
Mantén una referencia de solicitud, una versión de sus datos y un contador de intentos. El contador aumenta cuando repites una entrega; la versión cambia cuando alguien modifica el alcance. En un ejemplo hipotético, reenviar la creación de cinco unidades tras un fallo de red es un reintento. Pasar a siete unidades requiere decidir si se modifica el pedido existente o se autoriza otro: generar otra clave sin resolverlo puede crear ambos.
No confundas doble clic con doble voluntad
La interfaz puede bloquear envíos simultáneos y mostrar la solicitud pendiente, pero la decisión debe sobrevivir a cerrar el navegador. Reabrir la página debería recuperar la intención persistida. Si una persona quiere repetir un pedido idéntico otro día, necesita una acción explícita que cree una nueva solicitud. Un resumen de campos iguales no permite distinguir esa compra legítima de una repetición técnica.
Compara el contenido antes de continuar
Al recibir una referencia existente, compara los parámetros relevantes con la versión aprobada. Si coinciden, consulta el resultado de esa operación. Si difieren, presenta el conflicto y detén la ejecución hasta decidir qué versión debe aplicarse. Stripe documenta controles de parámetros asociados a claves en API v1; utilízalo como ejemplo de contrato concreto, no como sustituto de la validación comercial de tu propio flujo.
Comprueba cambios mientras llega una respuesta
Ensaya un primer envío lento, una edición posterior y la llegada tardía de la confirmación original. La respuesta debe quedar ligada a su versión, sin marcar como ejecutada una versión que nunca se envió. Conserva quién autorizó la modificación y qué ocurrió con la intención anterior. Para acciones irreversibles, muestra el resultado confirmado antes de aceptar una segunda ejecución. La guía de reintentos de Azure recomienda valorar los efectos de repetir: el control empieza por saber qué acción estás repitiendo.
Comprobaciones para cerrar la tarea
- ✓ Solicitud, versión e intento son campos distintos.
- ✓ Una compra idéntica nueva puede autorizarse expresamente.
- ✓ Una confirmación tardía se asocia a su versión original.
Fuentes y documentación
- Stripe: solicitudes idempotentes — El contrato cambia entre API v1 y v2; revisa conservación de claves, parámetros y resultados.
- Azure Architecture Center: Retry — Distingue fallos transitorios, límites de intentos e impacto de políticas anidadas.
Aplicarlo en tu empresa
Podemos revisar el entorno y acordar qué actuaciones, validaciones y mantenimiento necesitas.
Conocer el servicio relacionado →