¿Qué es la idempotencia?

La idempotencia es la propiedad por la que repetir una operación con la misma identidad no produce efectos adicionales no deseados tras la primera ejecución satisfactoria. Es importante cuando un cliente no puede determinar si una solicitud anterior se completó.

Cómo funciona la idempotencia

Un servicio idempotente trata la ejecución repetida de la misma orden lógica como un único efecto, incluso cuando la incertidumbre de la red hace que quien la invoca vuelva a enviarla. Los servidores suelen almacenar de forma persistente una clave junto con la identidad de la solicitud, el estado del procesamiento y la respuesta anterior o el recurso resultante. La garantía tiene un alcance y un período de retención; no es una promesa de deduplicación ilimitada. En los sistemas multimedia, protege la creación de subidas, el envío de solicitudes de encoding, las acciones de facturación y la gestión de webhooks en puntos propensos a reintentos.

Datos clave

  1. Una implementación robusta compara los parámetros relevantes de la solicitud reintentada con la operación almacenada; devolver un resultado antiguo para la misma clave pero con una entrada diferente puede asociar silenciosamente el contenido multimedia equivocado.
  2. Los duplicados concurrentes requieren una reserva atómica o una restricción de unicidad, porque una comprobación seguida de una inserción independiente permite que dos ejecutores detecten la ausencia y produzcan el efecto dos veces.
  3. La semántica de los métodos HTTP y la idempotencia de la aplicación son aspectos distintos: PUT se define como idempotente a nivel de protocolo, mientras que un POST puede hacerse seguro frente a reintentos mediante una clave específica de la operación.

Cuándo es importante la idempotencia

Asigna una clave de idempotencia a las operaciones que se reintentan en los servicios que desarrolles, o al llamar a API de terceros que documenten el soporte para estas claves, para que el servidor pueda devolver el resultado original en lugar de crear otro recurso. La API de Transloadit no acepta una clave de idempotencia para crear Assemblies, por lo que la aplicación que realiza la integración es responsable de deduplicar los envíos repetidos de Assemblies; cualquier clave que uses debe identificar la misma operación lógica sin reutilizarse para tareas no relacionadas.

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis