Parallel
The Parallel state is internally used by the StepFunctions component to add a Parallel
workflow state
to a state machine.
You’ll find this component returned by the parallel method of the StepFunctions component.
Constructor
new Parallel(args)Parameters
-
argsParallelArgs
ParallelArgs
arguments?
Type Input<Record<string, Input<any>>>
The arguments to be passed to the APIs of the connected resources. Values can include outputs from other resources and JSONata expressions.
{ arguments: { product: "{% $states.input.order.product %}", url: api.url, count: 32 }}assign?
Type Record<string, any>
Store variables that can be accessed by any state later in the workflow, instead of passing it through each state.
This takes a set of key/value pairs. Where the key is the name of the variable that can be accessed by any subsequent state.
The value can be any JSON value; object, array, string, number, boolean, null.
{ assign: { productName: "product1", count: 42, available: true }}Or, you can pass in a JSONata expression.
{ assign: { product: "{% $states.input.order.product %}", currentPrice: "{% $states.result.Payload.current_price %}" }}Learn more about passing data between states with variables.
name
Type string
The name of the state. This needs to be unique within the state machine.
output?
Type Input<Record<string, any> | “{% ${string} %}”>
Transform the output of the state. When specified, the value overrides the default output from the state.
This takes any JSON value; object, array, string, number, boolean, null.
{ output: { charged: true }}Or, you can pass in a JSONata expression.
{ output: { product: "{% $states.input.product %}" }}Learn more about transforming data with JSONata.
Methods
branch
branch(branch)Parameters
The state to add as a branch.branchState
Returns Parallel
Add a branch state to the Parallel state. Each branch runs concurrently.
const parallel = sst.aws.StepFunctions.parallel({ name: "Parallel" });
parallel.branch(processorA);parallel.branch(processorB);catch
catch(state, args?)Parameters
Returns Parallel
Add a catch behavior to the Parallel state. So if the state fails with any
of the specified errors, it’ll continue execution to the given state.
This defaults to.
sst.aws.StepFunctions.parallel({ // ...}).catch({ errors: ["States.ALL"]});next
next(state)Parameters
The state to transition to.stateState
Returns State
Add a next state to the Parallel state. If all branches complete successfully,
this’ll continue execution to the given state.
sst.aws.StepFunctions.parallel({ // ...}).next(state);retry
retry(args?)Parameters
Properties to define the retry behavior.args?RetryArgs
Returns Parallel
Add a retry behavior to the Parallel state. If the state fails with any of the
specified errors, retry execution using the specified parameters.
This defaults to.
sst.aws.StepFunctions.parallel({ // ...}).retry({ errors: ["States.ALL"], interval: "1 second", maxAttempts: 3, backoffRate: 2});