What problem does it solve? Building durable, long-running serverless workflows requires handling retries, failures, scheduling, and external callbacks manually. This Skill provides complete guidance for the Upstash Workflow TypeScript/JavaScript SDK so you can define workflow endpoints, run reliable steps, and recover from failures without building that infrastructure yourself. ## Core Features & Use Cases - Workflow Definition & Triggering: Expose workflow endpoints with serve(), run steps with context.run, and trigger runs via the Workflow Client with retries, delays, and flow control. - Reliability & Recovery: Configure automatic retries, failure functions, and use the Dead Letter Queue (DLQ) to resume or restart failed runs programmatically or via REST API. - Event-Driven Patterns: Pause workflows with waitForEvent, waitForWebhook, or context.sleep, and build human-in-the-loop flows with realtime notifications. - Multi-Agent Orchestration: Build agents, tools, and tasks with patterns like evaluator-optimizer, prompt chaining, and orchestrator-workers using @upstash/workflow-agents. - Use Case: You need to process user signups with a multi-step flow (send email, wait for verification, call a third-party API) that survives deploys and failures. Use this Skill to define the workflow, wait for the verification webhook, and automatically retry failed steps. ## Quick Start Ask the assistant to create an Upstash Workflow endpoint that runs two steps and show how to trigger it with the Workflow Client.