Qu’est-ce que l’idempotence ?

L’idempotence est la propriété selon laquelle la répétition d’une opération avec la même identité n’entraîne aucun effet indésirable supplémentaire après le premier succès. Elle est importante lorsqu’un client ne peut pas déterminer si une requête antérieure a abouti.

Fonctionnement de l’idempotence

Un service idempotent traite les exécutions répétées d’une même commande logique comme un effet unique, même lorsque l’incertitude du réseau conduit l’appelant à la renvoyer. Les serveurs enregistrent généralement de manière persistante une clé avec l’identité de la requête, l’état du traitement et la réponse précédente ou la ressource obtenue. Cette garantie a un périmètre et une durée de conservation ; elle ne constitue pas une promesse de déduplication illimitée. Dans les systèmes multimédias, elle protège la création de téléversements, la soumission de traitements d’encodage, les opérations de facturation et le traitement des webhooks aux points susceptibles de faire l’objet de nouvelles tentatives.

Points clés

  1. Une implémentation robuste compare les paramètres pertinents de la requête réémise avec l’opération enregistrée ; renvoyer un ancien résultat pour la même clé mais avec une entrée différente peut associer silencieusement le mauvais média.
  2. Les doublons simultanés nécessitent une réservation atomique ou une contrainte d’unicité, car une vérification suivie d’une insertion distincte permet à deux unités d’exécution de constater l’absence de l’enregistrement et de produire deux fois le même effet.
  3. La sémantique des méthodes HTTP et l’idempotence applicative sont distinctes : PUT est défini comme idempotent au niveau du protocole, tandis qu’une clé propre à l’opération peut permettre de réessayer une requête POST sans risque.

Quand l’idempotence est utile

Attribuez une clé d’idempotence aux opérations faisant l’objet de nouvelles tentatives dans les services que vous développez, ou lors d’appels à des API tierces dont la documentation indique la prise en charge de telles clés, afin que le serveur puisse renvoyer le résultat initial au lieu de créer une autre ressource. L’API de Transloadit n’accepte pas de clé d’idempotence pour la création d’Assemblies ; la déduplication des soumissions répétées d’Assemblies relève donc de la responsabilité de l’application qui intègre l’API. Toute clé que vous utilisez doit identifier la même opération logique sans être réutilisée pour des opérations sans rapport.

Transformer vos connaissances sur les médias en une chaîne de traitement opérationnelle

Reliez les téléversements, le traitement, l’IA, le stockage et la diffusion via une seule API déclarative — la pile d’encodage, la montée en charge et l’évolution constante des formats sont prises en charge pour vous.

Essayer Transloadit gratuitement