--- title: Idempotence created: 2026-06-06 updated: 2026-06-06 type: concept tags: [tech, automation, devops] confidence: high contested: false sources: [synthesized] --- # 🔁 Idempotence ## Définition Courte Propriété d'une opération qui produit le **même résultat** qu'on l'exécute une ou plusieurs fois. Une requête réseau ou un script est idempotent si elle/il peut être réessayé sans danger. ## Explication Détaillée **Exemples** : - `PUT /user/42 {"name": "Velli"}` est idempotent : l'état final est le même que vous l'appeliez 1 ou 10 fois. - `POST /users {"name": "Velli"}` n'est PAS idempotent : 10 appels créent 10 utilisateurs. - Un script Ansible est idempotent : l'appliquer deux fois ne change rien si l'état cible est déjà atteint. Les méthodes HTTP idempotentes par spec : `GET`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`. ## Cas d'Usage - Retries réseau (crucial en microservices). - Infrastructure as Code (Terraform, Ansible). - Webhooks : le fournisseur peut renvoyer le même hook plusieurs fois. ## Outils Liés - **Ansible** (idempotence native). - **Terraform** (plan/apply déterministe). - **Idempotency-Key** dans Stripe API. ## Pages Liées - [[patterns-architecture]] - [[automatisation-dotfiles]] - [[concepts-web]] ## Questions Ouvertes - Comment garantir l'idempotence sur des opérations bancaires ? - Quand faut-il sacrifier l'idempotence pour la performance ? ## Liens - [[message-queue]]