workflow-orchestration-patterns
Проектируйте надёжные распределённые рабочие процессы с использованием паттернов Temporal
Также доступно от: wshobson
Создание надёжных распределённых систем затруднено из-за сбоев, тайм-аутов и сложности управления состоянием. Этот навык предоставляет проверенные паттерны оркестрации рабочих процессов от Temporal, которые автоматически обрабатывают сбои, сохраняют состояние при сбоях системы и масштабируются горизонтально.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «workflow-orchestration-patterns». Спроектировать рабочий процесс оплаты с этапами резервирования инвентаря, списания и выполнения заказа
Ожидаемый результат:
Вот дизайн паттерна саги: 1) ReserveInventoryActivity (компенсация: ReleaseInventoryActivity), 2) ChargePaymentActivity (компенсация: RefundPaymentActivity), 3) FulfillOrderActivity (компенсация: CancelFulfillmentActivity). Зарегистр��руйте каждую компенсацию перед выполнением. При любом сбое выполняйте компенсации в порядке LIFO. Все активности должны быть идемпотентными.
Использование «workflow-orchestration-patterns». Почему я не могу использовать datetime.now() в моём рабочем процессе?
Ожидаемый результат:
Рабочие процессы должны быть детерминированными для повторного воспроизведения. datetime.now() возвращает разные значения каждый раз, нарушая детерминизм. Вместо этого используйте workflow.now(), которое предоставляет детерминированное время на основе времени рабочего процесса. Тот же принцип применяется к random() - используйте workflow.random() для детерминированных случайных чисел.
Использование «workflow-orchestration-patterns». Как мне обрабатывать вызов API стороннего сервиса, который может занять часы?
Ожидаемый результат:
Используйте паттерн асинхронного обратного вызова: 1) Активность отправляет запрос во внешнюю систему, 2) Рабочий процесс ждёт сигнал, используя workflow.wait_for_condition(), 3) Внешняя система вызывает вебхук при завершении, 4) Обработчик сигнала возобновляет рабочий процесс с ответом. Включите тайм-аут на случай, если внешняя система никогда не ответит.
Аудит безопасности
Безопасно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)
Оценка качества
Что вы можете построить
Координация транзакций электронной коммерции
Реализуйте распределённые транзакции для обработки заказов, которые резервируют инвентарь, списывают оплату и выполняют заказы с автоматическим откатом при любом сбое
Автоматизация длительных бизнес-процессов
Создавайте многоэтапные рабочие процессы утверждения, которые длятся днями или неделями с автоматическим сохранением состояния, обработкой тайм-аутов и логикой эскалации человеку
Архитектура оркестрации микросервисов
Проектируйте устойчивые паттерны взаимодействия сервисов, используя рабочие процессы сущностей и компенсацию саги вместо ненадёжных распределённых транзакций
Попробуйте эти промпты
Спроектировать рабочий процесс Temporal для транзакции [домен], который включает [этапы]. Включить логику компенсации для каждого этапа и объяснить, как обрабатывать частичные сбои.
У меня есть конечный автомат с [состояния] и переходами. Помогите мне спроектировать это как рабочий процесс Temporal с правильной детерминированностью и разделением на активности.
Мой рабочий процесс завершился с ошибкой детерминизма. Код использует [фрагмент кода]. Объясните, почему это нарушает детерминизм, и как исправить это, используя безопасные для рабочего процесса альтернативы.
Мне нужно обрабатывать [количество] элементов в день через рабочие процессы. Спроектируйте масштабируемую архитектуру, используя fan-out/fan-in, дочерние рабочие процессы и секционирование очередей задач.
Лучшие практики
- Держите рабочие процессы сфокусированными на логике оркестрации - выносите все внешние вызовы в активности
- Сделайте все активности идемпотентными, чтобы повторы были безопасными - используйте ключи идемпотентности или upserts
- Всегда настраивайте тайм-ауты и политики повторных попыток - различайте повторяющиеся и неповторяющиеся ошибки
Избегать
- Вызов внешних API или баз данных напрямую из кода рабочего процесса - всегда используйте активности
- Использование datetime.now(), random() или потоков в рабочих процессах - нарушает детерминизм и повторное воспроизведение
- Создание неидемпотентных активностей - повторы вызовут дублирующие побочные эффекты
Часто задаваемые вопросы
В чём разница между рабочим процессом и активностью?
Почему рабочие процессы должны быть детерминированными?
Как обрабатывать компенсацию в транзакциях саги?
Могут ли рабочие процессы выполняться вечно?
Как масштабировать рабочие процессы для обработки миллионов задач?
Что происходит, если активность завершается сбоем?
Сведения для разработчиков
Автор
sickn33Лицензия
MIT
Репозиторий
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/workflow-orchestration-patternsСсылка
main
Структура файлов
📄 SKILL.md