Glosario Técnico

Idempotencia

Definición: Propiedad de una operacion que produce el mismo resultado independientemente de cuantas veces se ejecute, fundamental para la fiabilidad de sistemas distribuidos.

— Fuente: NERVICO, Consultoría de Desarrollo de Producto

Que es la idempotencia

La idempotencia es una propiedad de las operaciones en la que ejecutar la misma accion una o multiples veces produce exactamente el mismo resultado en el sistema. En el contexto de APIs y sistemas distribuidos, una operacion idempotente garantiza que si una peticion se envia dos veces (por ejemplo, debido a un timeout y un reintento), el efecto en el servidor es identico al de haberla enviado una sola vez.

Como funciona

La idempotencia se implementa tipicamente mediante claves de idempotencia: el cliente genera un identificador unico para cada operacion logica y lo incluye en la peticion. El servidor almacena la clave junto con el resultado de la primera ejecucion. Si recibe la misma clave de nuevo, devuelve el resultado almacenado sin ejecutar la operacion otra vez. En HTTP, los metodos GET, PUT y DELETE son idempotentes por diseno, mientras que POST no lo es por defecto y requiere implementacion explicita de claves de idempotencia.

Casos de uso principales

  • Procesamiento seguro de pagos donde un reintento no debe generar un cobro duplicado al usuario
  • APIs de creacion de recursos que manejan reintentos automaticos sin crear duplicados
  • Sistemas de mensajeria donde un mensaje puede entregarse mas de una vez (at-least-once delivery)
  • Operaciones de infraestructura como codigo donde ejecutar el mismo script multiples veces produce el mismo estado final

Ventajas y consideraciones

La idempotencia es fundamental para construir sistemas distribuidos fiables, ya que los fallos de red y los reintentos son inevitables. Simplifica drasticamente la logica de recuperacion de errores del cliente, que puede reintentar con seguridad cualquier operacion fallida. La principal consideracion es el coste de almacenar las claves de idempotencia y definir su tiempo de vida. Tambien requiere cuidado en operaciones compuestas donde la idempotencia de la operacion global no se deduce de la idempotencia de sus partes.

Relacion con otros conceptos

¿Necesitas ayuda con desarrollo de producto?

Te ayudamos a acelerar tu desarrollo con tecnología puntera y mejores prácticas.