Vidéo 44 • Fiabilité des Transactions
L'Idempotence :
Zéro Doublon
Apprenez à rendre votre API "intelligente" pour qu'elle sache ignorer les requêtes répétées et protéger l'intégrité de vos bases de données.
Le Danger de la Synchronisation Aveugle
Scénario Catastrophe
Le client envoie un ticket. Le serveur l'enregistre mais la connexion coupe avant la réponse.
Le client croit que ça a échoué et renvoie le ticket.
L'Idempotence Expert
"Peu importe combien de fois tu m'envoies le même ticket, je ne l'enregistrerai qu'une seule fois."
Laboratoire : Détection de Redondance
La Clé de l'Unicité
Utiliser l'ADN de la donnée
L'expert n'attend pas que la base de données rejette l'ID (trop tard).
Le serveur maintient un Cache d'Idempotence (très rapide) qui stocke les UUID des 24 dernières heures.
Si le même UUID arrive, le serveur répond immédiatement "200 OK" (en mentant pour rassurer le client) sans rien écrire.
"Toujours renvoyer un succès pour un doublon, sinon le client va boucler à l'infini."
Algorithme d'Anti-Doublon
// 1. On extrait l'identifiant unique de la requête sMonUUID est une chaîne = stPaquetRecu.UUID // 2. ON VÉRIFIE SI ON L'A DÉJÀ VU (VÉRIFICATION IDEMPOTENCE) SI HLitRecherchePremier(F_TICKET, UUID, sMonUUID) ALORS // ALERTE : C'est un doublon ! // On ne fait rien, mais on répond "200 OK" au client HTTPRéponse(200, "ALREADY_PROCESSED") RETOUR FIN // 3. Première fois : On enregistre normalement HBufferVersEnreg(F_TICKET, stPaquetRecu) HAjoute(F_TICKET)