You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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>
Copy file name to clipboardExpand all lines: apps/docs/src/content/docs/concepts/what-is-a-workflow.md
+23-4Lines changed: 23 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,22 +34,41 @@ Edges have **categories** that determine their visual style and semantic meaning
34
34
35
35
### Ports
36
36
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.
38
38
39
39
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.
40
40
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
+
41
47
### Config
42
48
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
44
57
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
+
:::
46
65
47
66
## How It All Fits Together
48
67
49
68

50
69
51
70
:::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.
53
72
:::
54
73
55
74
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