> ## Documentation Index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

Upstash Workflow lets you write **durable, reliable and performant serverless functions**. Get delivery guarantees, automatic retries on failure, scheduling and more without managing any infrastructure.

<iframe id="intro-video" width="720" height="405" src="https://www.youtube.com/embed/5As9tZMN3a8?rel=0&disablekb=1" title="YouTube video player" frameBorder="0" allow="accelerometer; fullscreen; clipboard-write; encrypted-media; gyroscope" allowFullScreen />

## Quickstarts

Upstash Workflow supports Next.js, Cloudflare Workers and [many other frameworks](/workflow/quickstarts/platforms) in TypeScript and Python.

<CardGroup cols={2}>
  <Card title="Next.js" icon="node-js" href="/workflow/quickstarts/vercel-nextjs">
    Build a Next.js application with QStash Workflow
  </Card>

  <Card title="Cloudflare Workers" icon="cloudflare" href="/workflow/quickstarts/cloudflare-workers">
    Use and deploy Upstash Workflow on Cloudflare Workers
  </Card>

  <Card title="Next.js & FastAPI" icon="python" href="/workflow/quickstarts/nextjs-fastapi">
    Use Upstash Workflow for Python with Next.js and FastAPI
  </Card>
</CardGroup>

## Key Features

<CardGroup cols={2}>
  <Card title="Failure Resilience" icon="shield">
    If your platform experiences a temporary outage, your workflow can pick up right where it left off, ensuring stability even in unstable environments.
  </Card>

  <Card title="Long-Running Executions" icon="clock">
    Run long-running REST endpoints, such as complex AI models or video processing tools, even on serverless platforms with strict time limits.
  </Card>

  <Card title="Events with Wait/Notify Mechanism" icon="bell" href="/workflow/features/wait-for-event">
    Create workflows that wait for external events before proceeding. Ideal for user confirmations and asynchronous notifications.
  </Card>

  <Card title="Scheduled Jobs" icon="calendar" href="/workflow/howto/schedule">
    Run jobs at regular intervals with support for cron expressions. Perfect for recurring tasks like reminders, reports, or newsletters.
  </Card>

  <Card title="Parallel Runs" icon="road" href="/workflow/features/parallel-steps">
    Start independent tasks in parallel and wait for them to finish simultaneously, reducing latency.
  </Card>

  <Card title="Long Delays" icon="hourglass" href="/workflow/basics/context/sleep">
    Need your code to “sleep” for days, weeks, or even months? Supports long delays beyond serverless time limits.
  </Card>

  <Card title="Delivery Guarantees" icon="rotate-right">
    Ensures at-least-once delivery. Failed requests are logged in a Dead Letter Queue to prevent data loss.
  </Card>

  <Card title="Flow Control" icon="gauge" href="/workflow/features/flow-control">
    Prevent overwhelming your app or external services by configuring rate per second or parallelism limits.
  </Card>

  <Card title="Observability" icon="eye" href="/workflow/basics/client/logs">
    Monitor workflow steps with insights. Filter events to track successes, failures, retries, and stalls.
  </Card>
</CardGroup>

## Example Use Cases

Here are some example real world use-cases for Upstash Workflow:

<CardGroup cols={2}>
  <Card title="Agents" icon="robot" href="/workflow/agents/overview">
    Use LLM Agents equipped with custom tools to achieve tasks
  </Card>

  <Card title="AI Data Processing" icon="sparkles" href="/workflow/examples/allInOne">
    Download a large dataset without timeouts, process the data in chunks and generate a report.
  </Card>

  <Card title="Waiting For Events" icon="traffic-light" href="/workflow/examples/waitForEvent">
    Control workflow execution with events, log event data and send emails
  </Card>

  <Card title="Authorization Webhook" icon="webhook" href="/workflow/examples/authWebhook">
    Start a workflow from a webhook. Handle user creation, trial management,
    email reminders and notifications.
  </Card>

  <Card title="Customer Onboarding" icon="user" href="/workflow/examples/customerOnboarding">
    Register a new user, send welcome emails, and periodically check and respond
    to the user's activity state with emails.
  </Card>

  <Card title="E-Commerce Order Fulfillment" icon="cart-flatbed-boxes" href="/workflow/examples/eCommerceOrderFulfillment">
    Receive an order request, verify the stock, process the payment, and handle
    order dispatch and customer notifications.
  </Card>

  <Card title="Image Processing" icon="image" href="/workflow/examples/imageProcessing">
    Manage uploading images to the data store. Apply filters and resize the
    images to different resolutions in parallel.
  </Card>

  <Card title="Retry Payments" icon="credit-card" href="/workflow/examples/paymentRetry">
    Retry payments with a day of delay, send emails, and suspend account if
    payment fails after the retries.
  </Card>
</CardGroup>

## How it works

Upstash Workflow builds on the principle of steps. Instead of defining a single, complex piece of business logic, workflows contain multiple individual steps.

Each of the steps are executed by a separate request to your application, by preserving the output of previous steps.

In case of an error, a failed step is retried individually without needing to re-run any previous steps. Instead of the entire business logic, *each step* can take up your serverless function execution duration, and many more benefits.

<Frame>
  <img src="https://mintcdn.com/upstash/V1WwT580M-elE8rq/img/qstash-workflow/workflow-concept.png?fit=max&auto=format&n=V1WwT580M-elE8rq&q=85&s=39a2c8c56f92813198d5990df8d8c9c2" width="1920" height="1080" data-path="img/qstash-workflow/workflow-concept.png" />
</Frame>

## Support

Need help or have questions? We're here to support you:

* Join our Discord community to ask questions and share feedback
* Open a ticket through the Intercom chatbox in the dashboard for any issue
