Donnez une identité à chaque tâche
Utilisez un identifiant unique et enregistrez si la tâche est en file d'attente, en cours, réussie ou en attente de vérification. Un plantage ne doit pas effacer le fait qu'une action externe a peut-être déjà eu lieu. Rapprochez les résultats incertains avant de réessayer.
Accordez un ensemble restreint de pouvoirs
Séparez la découverte en lecture seule des modifications qui touchent les comptes, l'argent ou les données de production. Utilisez des identifiants de service à portée limitée et des limites de ressources. Maintenez une approbation humaine disponible pour les actions dont les conséquences dépassent l'autorité habituelle du worker.
Limitez les tentatives
Utilisez un nombre maximal de tentatives, un backoff et un chemin de lettre morte ou de revue. Respectez les limites de débit du fournisseur. Une défaillance temporaire ne doit pas devenir des milliers de requêtes répétées ou de messages en double.
Rendez l'enregistrement sûr et utile
Journalisez l'identifiant d'opération, le résultat et les horodatages pertinents. Masquez les identifiants et les données personnelles inutiles. Conservez un moyen de suspendre la file d'attente, de révoquer un jeton et de récupérer après une action partielle sans perdre l'ensemble du workflow.