workflow.fan_out
Operation: workflow.fan_out
Category: workflow
Tags: fan-out, parallel, dynamic
Explode an array into N parallel dynamic branches
Runtime
Section titled “Runtime”Type: Native (built-in)
Timeout: 300s
Retries: 3 (ExponentialWithJitter)
Inputs
Section titled “Inputs”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
items | JSON | Yes | — | Array of items to fan out |
Outputs
Section titled “Outputs”| Name | Type | Description |
|---|---|---|
items | JSON | Array passed through for branch spawning |
count | Number | Number of items |
import { WorkflowBuilder } from "@fabric-platform/sdk";
const workflow = new WorkflowBuilder("my-workflow") .node("workflow-fan-out", "transform", (n) => n.config({ operation: "workflow.fan_out", // ... node-specific config }) ) .build();from fabric_platform import FabricClient
fabric = FabricClient(api_key="fab_xxx")
wf_id = fabric.upsert_workflow("my-workflow", nodes=[ { "key": "workflow-fan-out", "kind": "transform", },])use fabric_sdk::FabricClient;
let client = FabricClient::new("http://localhost:3001", api_key)?;
let wf_id = client.upsert_workflow("my-workflow", serde_json::json!({ "nodes": [{ "key": "workflow-fan-out", "kind": "transform" }]})).await?;curl -X POST http://localhost:3001/v1/workflow-definitions \ -H "Authorization: Bearer $FABRIC_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "my-workflow", "nodes": [{ "key": "workflow-fan-out", "kind": "transform" }] }'Example
Section titled “Example”{ "key": "fan-out-segments", "operation": "workflow.fan_out", "config": { "branch_kind": "process-segment" }, "inputs": [{ "name": "items", "path": "$context.segments" }], "outputs": [{ "name": "count", "path": "$context.segment_count" }]}Common Errors
Section titled “Common Errors”Missing required input: items
Section titled “Missing required input: items”Cause: The items input is null or not bound — fan_out needs an array to split
Fix: Bind items to a context path containing a JSON array from an upstream node