# Ink (unsupervised) Ink is a workflow tool and a language. ### Terminology * **Flow**: a DAG * **Task**: Individual node in DAG. Can have many or no inputs and outputs. * Tasks themselves can be a flow of other tasks (i.e. we have *composability*) * Each task in a flow is an "isolated component" in that it does not know anything about the global state of the flow * Task inputs and outputs are **serialized** as **artifacts** (stored in minio) * Ink has a "database". Each job gets a uuid. A job can have many runs, each with a uuid. ### Inputs vs Config **Inputs are...** * Dynamically generated, have a *global scope*. They are dependent on/effect inputs and outputs in other tasks * "Simple" containers with unpredictable components. I.e. an integer whose value depends on the state of other variables in other tasks **Config is...** * Statically defined, with a *local scope*. This does not change at run time. Does not effect the behavior of other tasks. Predictably alters the behavior of the local task code * "Complex" containers with simply components. I.e. Nested dictionaries with string values at the leaves --- Date: 20211028 Links to: Tags: References: * [Powerpoint pres](https://docs.google.com/presentation/d/1UoiOqipltPJyEm0egY4G8ModH-xXseHSjbJ0uxSUXds/edit#slide=id.g7ebcf3f193_0_447) * [Notion doc](https://www.notion.so/unsupervised/New-Ink-2020-02-27-e0c7393ffd8845dca90bd29dd2cddeb0)