How To

Configure a Run

You can configure a workflow run when starting it. The following are the options you can configure:

  1. Retries: The number of retry attempt Upstash Workflow does when a step fails in the workflow run
  2. Retry Delay: The delay strategy between retries when Upstash Workflow attempts retries.
  3. Flow Control: The rate, period and parallelism that steps should respect and logical grouping key to share with other workflow runs.

You can pass these configuration options when starting a workflow run:

import { Client } from "@upstash/workflow";const client = Client()const { workflowRunId } = await client.trigger({    url: `http://localhost:3000/api/workflow`,    retries: 3,    retryDelay: "(1 + retries) * 1000",    flowControl: {        key: "limit-ads",        rate: 1,        parallelism: 10    }});

The workflow run configuration does not apply to context.call() and context.invoke() steps. These steps accept their own configuration options, allowing fine-grained control over external requests. If not specified, they fall back to their default values.

For details, see:

Upstash Workflow does not support step level configuration. The configuration applies to all steps executed by a workflow run.

If you want to specifically throttle a step, there is a workaround by splitting step to another workflow and using context.invoke().

Loading search…