Idempotencia: La Fábrica que Nunca Envía un Paquete dos Veces
El problema de la orden perdida
Imaginá que estás haciendo una compra online. Hacés clic en "Pagar", la ruedita de carga gira y no pasa nada. La página se queda colgada. Tu primer instinto es refrescar y volver a intentarlo, pero te surge una duda: ¿se procesó el primer pago? ¿Terminaré pagando dos veces?
Para evitar este caos, las APIs modernas (especialmente en pagos y servicios críticos) se construyen sobre un principio de ingeniería fundamental: la idempotencia.
Para entenderlo, viajemos a una fábrica de paquetes.
La idempotencia asegura que enviar la misma solicitud de pago 5 veces genere exactamente el mismo resultado que enviarla 1 sola vez.
Nuestra fábrica recibe órdenes. Una orden dice: "Preparar Pedido de Zapatillas". El problema es que la comunicación a veces falla. Enviás la orden, pero la confirmación nunca llega. ¿La orden se perdió?
Si volvemos a enviar la misma orden por las dudas, la fábrica podría despachar dos paquetes idénticos. Un error muy costoso.
La solución idempotente: El sello único
Una fábrica inteligente resuelve esto de una manera muy elegante. Cada orden lleva un número de serie único e irrepetible, como un sello de autenticidad. Por ejemplo: "Orden #1234: Preparar Pedido".
Así funciona el proceso:
- Llega la "Orden #1234".
- El sistema revisa su registro de "órdenes ya procesadas".
- ¿La Orden #1234 ya existe?
- No: Se prepara el paquete, se le aplica el sello "#1234", se guarda en el registro y se envía confirmación de éxito.
- Sí: ¡Alerta! Esta orden ya fue procesada. El sistema no prepara un paquete nuevo. Simplemente busca el paquete original con ese sello y vuelve a enviar la misma confirmación de éxito.
El resultado es potente: no importa si enviás la "Orden #1234" una o cien veces. El resultado final siempre será el mismo: un único paquete procesado.
Del paquete al pago online
Este mismo principio usan las pasarelas de pago. Cuando tu web envía una petición para cobrar, incluye una "clave de idempotencia". Si tu servidor envía la petición dos veces por un microcorte de red, la pasarela ve la misma clave, reconoce que es una repetición y no cobra dos veces (teniendo en cuenta, claro, los tiempos de caché y expiración de dichas claves).
En proyectos profesionales, recomendamos diseñar sistemas idempotentes como buena práctica para operaciones críticas. Es la forma de asegurar que el sistema sea predecible y a prueba de los inevitables fallos de red.


