Define multi-step workflows where steps run in parallel, wait for dependencies, and pass outputs downstream. Strait resolves the execution order automatically.
Step types
Job, sub-workflow, approval
Parallelism
Fan-out / fan-in
Conditions
Expression-based step guards
Variables
Template interpolation
Output transforms
JQ-style transforms
Max depth
Unlimited nesting
client.Workflows.Create(ctx, strait.WorkflowInput{
Name: "order-processing",
Steps: []strait.Step{
{ID: "validate", JobID: "validate-payload"},
{ID: "charge", JobID: "charge-payment", DependsOn: []string{"validate"}},
{ID: "fulfill", JobID: "fulfill-order", DependsOn: []string{"charge"}},
{ID: "notify", JobID: "send-email", DependsOn: []string{"fulfill"}},
},
})