¿Qué es la idempotencia?
Puedes machacar un botón de ascensor diez veces y solo se registra una. Cuando le das sin parar a «pagar» en una tienda online, lo ideal es que solo te cobren una vez. Esa propiedad — hacer algo muchas veces da el mismo resultado que una — es la idempotencia.Por qué los agentes la necesitan
Los agentes reintentanCortes de red, timeouts, errores — un agente suele necesitar «un intento más». Si cada reintento te cobrara otra vez, tendrías un problema.
Varios agentes pueden hacer lo mismo dos veces
Cuando los agentes se reparten el trabajo, dos pueden lanzar la misma acción. La idempotencia hace inofensiva la ejecución duplicada.
Idempotente o no
Operaciones idempotentesLeer datos, fijar un valor concreto (PUT), borrar un recurso concreto — repetirlas no cambia nada.
Operaciones no idempotentes
Algo como «añade 100 € a la cuenta» se acumula: cada ejecución cambia el estado, así que necesita una clave de idempotencia que lo proteja.
Cómo lograrlo
Dale a cada petición un ID únicoEl cliente genera una clave por operación; el servidor anota «ya gestionado» e ignora duplicados.
Preferir «poner en X» antes que «sumar uno»
Diseña operaciones que asignen un valor fijo en vez de incrementar.
Refuerzo en la base de datos
Los índices únicos y las transacciones bloquean las escrituras duplicadas en el almacenamiento.
En resumen: idempotente significa «repítelo, pero no lo cuentes dos veces».
Comentarios