Stop les scripts en double : validation intelligente avant exécution
Arrêter les scripts qui tournent deux fois : la validation avant exécution
On connaît tous ce scénario. Un script de déploiement se termine sans erreur, puis il se relance. Une fois par un mécanisme de retry, une autre par une main nerveuse ou une pipeline CI/CD mal configurée. Résultat : les migrations tournent deux fois, les ressources cloud se dupliquent, et les webhooks partent en double.
La solution ne réside pas dans l'idempotence parfaite des scripts. Elle passe par une vérification explicite avant chaque exécution.
Pourquoi l'idempotence ne suffit pas
Beaucoup de développeurs considèrent leurs scripts comme idempotents. L'idée est bonne en théorie. En réalité, elle cache des risques concrets.
Une migration de base de données peut mettre à jour un timestamp deux fois. Un script de provisioning AWS peut créer deux fois la même ressource. Un webhook peut notifier un client en double. Ces cas arrivent même quand le script est « presque » idempotent.
Le vrai problème, c'est qu'on suppose que tout va bien se passer sans jamais vérifier.
La validation d'état avant exécution
Au lieu de compter sur l'idempotence, les pratiques modernes reposent sur une trace explicite de l'exécution. Avant de lancer un script, on se pose une question simple : « Est-ce que cette opération a déjà été faite dans ce contexte ? »
C'est ce que proposent les systèmes de validation pré-exécution. Ils conservent un état — via timestamp, hash, flag en base ou verrou distribué — qui permet de répondre clairement : « Dois-je vraiment exécuter maintenant ? »
Comment ça marche
- Vérifier l'historique d'exécution
- Confirmer que le contexte et les paramètres sont uniques
- Placer un verrou ou un flag pour éviter les exécutions concurrentes
- Lancer la logique métier
- Mettre à jour l'état une fois terminé
Ce procédé transforme les scripts de « j'espère que ça ne tournera pas deux fois » en « je suis sûr que ça ne lنن