A node represents a unit of execution or work within a workflow. Ordinarily, a node will encapsulate an instance of a task, but it can also contain an entire subworkflow or trigger a child workflow. Nodes can have inputs and outputs, which are used to coordinate task inputs and outputs. Moreover, node outputs can be used as inputs to other nodes within a workflow.
Tasks are always encapsulated within a node, however, like tasks, nodes can come in a variety of flavors determined by their target. These targets include task nodes, workflow nodes, and branch nodes.
Tasks referenced in a workflow are always enclosed in nodes. This extends to all task types. For example, an array task will be enclosed by a single node.
A node can contain an entire sub-workflow. Because workflow executions always require a launch plan, workflow nodes have a reference to a launch plan used to trigger their enclosed workflows.
Branch nodes alter the flow of the workflow graph. Conditions at runtime are evaluated to determine the control flow.