# Workflow Components

## Workflows and their Steps

#### **Differences Between a Workflow and a Step**

In Chassy, a workflow is a collection of steps that are executed in a specific order. Each step can contain multiple tasks that must complete in parallel before the next step can begin.

Here is a summary of the key differences between workflows, steps, and tasks:

### **Workflow**

A workflow is a high-level representation of an automated process or pipeline consisting of multiple steps and tasks.

To relate workflows to a potentially familiar structure, workflows are structurally analogous to the mathematical notion of a graph, particularly a directed graph. If it is helpful, one may also notice that every workflow is also a tree.

| Chassy Notion             | Indicated By        | Math Analog |
| ------------------------- | ------------------- | ----------- |
| Workflow                  | Collection of steps | Graph       |
| Step                      | Rounded rectangle   | Vertex      |
| *Depends on* relationship | Lines between steps | Edge        |

### **Step**

A step is a unit of work that is executed as part of a workflow. There are several types of steps you can read more about in the [steps](https://docs.chassy.io/reference/workflow-components/steps "mention") reference. In graph theory terms, a step is the workflow analog for a vertex within a graph.

Steps can be said to depend on other steps to indicate a sequence of execution. If step *B* depends on step *A*, then step *B* will only execute after step *A* has completed. Step dependency is the workflow analog for an edge within a graph.

#### **Example of Multiple Steps within a Workflow**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd7F0UTGPwGhyT1DooJqDVGdh8oLALeVmNaAOo6007pkH4vU-9q7Sec-lk5TR-MQgFTp43fDbi5QkWrlYSocTUWa-CntDEo98g_MDPpbSleT8uQv6Uu3PDTprwoTeC4jkx6Q_kF14W0gJPvnE2dhtaNWE9u?key=CrjAmK76ZdHhNlRMtvcEMw" alt="A workflow consists of multiple steps that follow and depend on the previous one, with possible forks."><figcaption></figcaption></figure>

In the above example, the vertically grouped tasks are in the same step. Steps are executed sequentially from left to right on the workflow graph.

#### Step Status

<div align="left"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc3GsmHWwOrDPJ32JJWlwPCuX9X7tP6r1hIyVXJm5rA4ihaXj8rrDVkh7EDoEw67v5BlCFSNMRjO0Dwe6CsI9u4hlI-KmzcwIxJIKbQbG_lLI9Hj4sMFtTgEidtY6HLZ0uj-U3Fe6noXnJKQ3e52txGZqo6?key=CrjAmK76ZdHhNlRMtvcEMw" alt="Each step could be grey, green, yellow, or red, showing its status." width="188"><figcaption></figcaption></figure></div>

In the workflow graph, step statuses are denoted by color:

* Greyed out: Not started
* Green: Completed
* Yellow: Issue
* Red: Critical issue
