---
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]]
