Skip to content

Commit d30a3e4

Browse files
d34dmanclaude
andcommitted
docs: clarify distinction between ports and config in workflow concepts
Ports carry dynamic runtime data between nodes per-execution, while config holds static settings that apply consistently across all workflow runs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3f23e8e commit d30a3e4

1 file changed

Lines changed: 23 additions & 4 deletions

File tree

apps/docs/src/content/docs/concepts/what-is-a-workflow.md

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,41 @@ Edges have **categories** that determine their visual style and semantic meaning
3434

3535
### Ports
3636

37-
A **port** is a typed connection point on a node. Nodes have **input ports** (receiving data) and **output ports** (sending data).
37+
A **port** is a typed connection point on a node. Nodes have **input ports** (receiving data) and **output ports** (sending data). Ports represent the **runtime data** that flows between nodes during execution — the actual payloads that one node passes to the next.
3838

3939
Each port has a **data type** (e.g., `string`, `json`, `file`, `trigger`). FlowDrop enforces **type-safe connections** — you can only connect ports with compatible data types.
4040

41+
For example, an LLM node might have:
42+
- An input port of type `string` that receives the user's prompt
43+
- An output port of type `json` that emits the model's response
44+
45+
Ports are **unique to each connection** — every edge carries its own data between a specific pair of nodes.
46+
4147
### Config
4248

43-
Each node's behavior is controlled by its **configuration** — a set of key-value pairs defined by a [JSON Schema](/guides/config-schema/). For example, an HTTP request node might have config fields for URL, method, headers, and body.
49+
**Configuration** is different from ports. While ports carry runtime data that varies with each execution, config holds **shared settings** that apply consistently across all runs of the workflow.
50+
51+
Config values are defined by a [JSON Schema](/guides/config-schema/) and edited through a form UI when users click on a node. They control _how_ a node behaves rather than _what_ data it processes.
52+
53+
For example, the same LLM node might have config fields for:
54+
- **Model name** — which LLM to use (e.g., `claude-sonnet-4-20250514`)
55+
- **Temperature** — how creative the responses should be
56+
- **Max tokens** — the response length limit
4457

45-
The configuration schema also controls the **form UI** that appears when users click on a node.
58+
These values don't change from request to request — they're decisions the workflow author makes once, and every execution of the workflow uses them.
59+
60+
:::tip[Ports vs. Config — a quick rule of thumb]
61+
**Ports** = "What data flows through at runtime?" (dynamic, per-execution)
62+
63+
**Config** = "How is this node set up?" (static, set once by the workflow author)
64+
:::
4665

4766
## How It All Fits Together
4867

4968
![Workflow diagram showing Node A connected to Node B via an edge, with labeled input/output ports and configuration fields](../../../assets/images/diagrams/node-port-concept.svg)
5069

5170
:::note
52-
Each node has typed **ports** (input/output connection points) and **config** (user-editable settings). An **edge** connects an output port to an input port, defining data flow.
71+
Each node has typed **ports** for runtime data and **config** for workflow-level settings. An **edge** connects an output port to an input port, defining data flow. Config values stay the same across executions; port data changes every time.
5372
:::
5473

5574
A workflow is a **graph**: nodes are the vertices, edges are the connections, ports define where connections attach, and config controls what each node does.

0 commit comments

Comments
 (0)