workflow-orchestration-patterns
Concevoir des workflows distribués fiables avec les modèles Temporal
也可从以下获取: wshobson
Construire des systèmes distribués fiables est complexe en raison des pannes, des timeouts et de la gestion d'état. Cette compétence fournit des modèles d'orchestration de workflow éprouvés de Temporal qui gèrent automatiquement les pannes, préservent l'état après des crashes et s'adaptent horizontalement.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“workflow-orchestration-patterns”。 Concevoir un workflow de paiement avec réservation d'inventaire, paiement et étapes de fulfillment
预期结果:
Voici une conception de modèle saga : 1) ReserveInventoryActivity (compensation : ReleaseInventoryActivity), 2) ChargePaymentActivity (compensation : RefundPaymentActivity), 3) FulfillOrderActivity (compensation : CancelFulfillmentActivity). Enregistrez chaque compensation avant exécution. En cas d'échec, exécutez les compensations dans l'ordre LIFO. Toutes les activities doivent être idempotentes.
正在使用“workflow-orchestration-patterns”。 Pourquoi ne puis-je pas utiliser datetime.now() dans mon workflow ?
预期结果:
Les workflows doivent être déterministes pour le replay. datetime.now() retourne des valeurs différentes à chaque fois, cassant le déterminisme. Utilisez workflow.now() à la place, qui fournit l'heure déterministe basée sur l'horloge du workflow. Le même principe s'applique à random() - utilisez workflow.random() pour des nombres aléatoires déterministes.
正在使用“workflow-orchestration-patterns”。 Comment gérer un appel API tiers qui pourrait prendre des heures ?
预期结果:
Utilisez le Async Callback Pattern : 1) L'Activity envoie la requête au système externe, 2) Le workflow attend un signal avec workflow.wait_for_condition(), 3) Le système externe appelle le webhook quand terminé, 4) Le gestionnaire de signal reprend le workflow avec la réponse. Incluez un timeout au cas où le système externe ne répondrait jamais.
安全审计
安全Static analysis detected 24 potential security issues (external commands, weak cryptography, system reconnaissance), but all are FALSE POSITIVES. The skill contains only markdown documentation with code examples in backticks for illustration purposes. No executable code is present - this is a purely educational skill about Temporal workflow patterns with pseudo-code diagrams and best practices. The 'backtick' patterns are markdown formatting, not shell execution. The 'weak cryptography' flags are false positives from words like 'temporal' matching crypto patterns. The skill is safe to publish.
低风险问题 (1)
质量评分
你能构建什么
Coordination de transactions e-commerce
Implémenter des transactions distribuées pour le traitement de commandes qui réservent l'inventaire, chargent le paiement et exécutent les commandes avec rollback automatique en cas d'échec
Automatisation de processus métier de longue durée
Créer des workflows d'approbation multi-étapes qui s'étendent sur des jours ou des semaines avec persistance automatique d'état, gestion des timeouts et logique d'escalade humaine
Architecture d'orchestration de microservices
Concevoir des modèles de communication de services résilients utilisant des workflows d'entité et une compensation saga au lieu de transactions distribuées fragiles
试试这些提示
Concevez un workflow Temporal pour une transaction [domain] qui implique [steps]. Incluez la logique de compensation pour chaque étape et expliquez comment gérer les pannes partielles.
J'ai une machine d'état avec [states] et des transitions. Aidez-moi à concevoir cela comme un workflow Temporal avec un déterminisme et une séparation d'activity appropriés.
Mon workflow a échoué avec une erreur de déterminisme. Le code utilise [code snippet]. Expliquez pourquoi cela viole le déterminisme et comment le corriger en utilisant des alternatives workflow-safe.
Je dois traiter [number] éléments par jour via des workflows. Concevez une architecture évolutive utilisant fan-out/fan-in, child workflows et partitionnement de file d'attente de tâches.
最佳实践
- Gardez les workflows concentrés sur la logique d'orchestration - placez tous les appels externes dans des activities
- Rendez toutes les activities idempotentes pour que les retries soient sûrs - utilisez des clés d'idempotence ou des upserts
- Configurez toujours des timeouts et des politiques de retry - distinguez les erreurs retryable et non-retryable
避免
- Appeler des APIs externes ou des bases de données directement depuis le code de workflow - utilisez toujours des activities
- Utiliser datetime.now(), random() ou threading dans les workflows - cela casse le déterminisme et le replay
- Rendre les activities non-idempotentes - les retries causeront des effets de bord dupliqués