Última actualización: 15/10/2026
En informática, la idempotencia es una propiedad de una operación que produce el mismo efecto final sin importar las veces que se aplique. Si envías la misma solicitud a un servidor cinco veces, un sistema idempotente garantiza que el resultado en el servidor no cambie después del primer intento exitoso.
Además de garantizar el mismo resultado, una característica clave de las operaciones idempotentes es que las llamadas adicionales no producen efectos secundarios. Este es un requisito fundamental para crear sistemas distribuidos resilientes en los que las interrupciones de red intermitentes o los tiempos de espera agotados podrían hacer que un cliente envíe el mismo mensaje más de una vez.
La idempotencia es una propiedad de las operaciones en matemáticas y ciencias de la computación. Una solicitud idempotente es aquella que produce siempre el mismo estado del sistema y el mismo resultado sin importar las veces que se ejecute.
En las arquitecturas de nube distribuida, las APIs y los sistemas de procesamiento de pagos, la idempotencia es fundamental para la tolerancia a errores: permite que los clientes y los servicios reintenten de forma segura las solicitudes de red fallidas o que agotaron el tiempo de espera sin causar efectos secundarios no deseados, como registros duplicados o cargos dobles.
Vuelve a intentar las solicitudes de forma segura después de un tiempo de espera o una caída de la conexión sin temor a duplicar acciones (como cobrar dos veces a una tarjeta de crédito).
Los usuarios no necesitan un seguimiento de estado complejo para saber si una solicitud anterior tuvo éxito; simplemente pueden "reintentar hasta que tenga éxito".
Los sistemas distribuidos pueden recuperarse de fallas reproduciendo registros o reenviando mensajes perdidos sin dañar los datos.
El estándar REST define cómo deben comportarse los diferentes tipos de solicitudes web. Algunos métodos HTTP son naturalmente "seguros" o idempotentes por diseño, lo que significa que la especificación espera que se comporten de manera predecible incluso cuando se repiten. Otros están diseñados para crear datos nuevos y requieren un cuidado adicional para que sean seguros en los reintentos.
Según RFC 9110, varios métodos estándar son inherentemente idempotentes. Repetir estas acciones no debería cambiar el estado del servidor más allá de la solicitud inicial.
Algunos métodos no son idempotentes porque su trabajo principal es cambiar los datos de una manera que cree algo nuevo o modifique una parte de un registro existente.
La idempotencia suele ser necesaria en los sistemas que creamos. En algunos casos, se maneja por nosotros. En otros, los desarrolladores debemos tomar medidas para que esto suceda.
El ejemplo más famoso es el problema del "doble cargo". Si el navegador de un usuario se congela mientras paga un vuelo, es posible que haga clic en "Pagar" de nuevo. Una API de pago que usa una clave de idempotencia garantiza que el segundo clic se reconozca como un reintento. Esto protege la cuenta bancaria del cliente y reduce el costo operativo de administrar los reembolsos por transacciones duplicadas.
Herramientas como Terraform y Ansible dependen de la idempotencia. Cuando ejecutas una secuencia de comandos para "crear un bucket de almacenamiento de 10 GB", la herramienta verifica el estado actual de tu nube.
Las APIs web modernas suelen implementar el encabezado Idempotency-Key (ahora un borrador estandarizado de IETF) para permitir que los desarrolladores creen integraciones más sólidas.
Un "upsert" (actualización o inserción) es una operación de base de datos idempotente clásica. En lugar de un simple "insertar", un upsert dice: "Si este registro existe, actualízalo; si no, créalo".
Google Cloud ofrece varias herramientas que facilitan la implementación de estos patrones para los desarrolladores. La creación en una plataforma administrada reduce la cantidad de código estándar que necesitas escribir para mantener tus datos seguros.


Aprende a implementar servicios resilientes e idempotentes en Cloud Run hoy mismo.