Idempotency
Architecture 🟡 MidDefinition
Une operation idempotente produit le meme resultat qu'elle soit executee une ou plusieurs fois. Essentiel pour les retries et la fiabilite des APIs.
Analogie
Appuyer sur le bouton d'un ascenseur deja allume : le resultat est le meme, qu'on appuie 1 ou 10 fois.
Exemple de code
// Idempotency key pour eviter les doublons
app.post('/payments', async (req, res) => {
const existing = await db.findByIdempotencyKey(req.headers['idempotency-key']);
if (existing) return res.json(existing);
const payment = await processPayment(req.body);
res.json(payment);
});
Cas d'usage
Paiements, creation de ressources, toute operation qui peut etre retentee par le client.
Anti-pattern
POST qui cree un doublon a chaque retry — facturations multiples en production.