Idempotency

Architecture 🟡 Mid

Definition

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.

Termes lies

#architecture#interview#api#best-practice