====== Vessel ====== An automation programming system based on plugins and events. ==== Type System ==== * A **workflow** is a tree of user-entered steps with an optional input trigger. * A **step** is a single logical operation in a **workflow**, such as "print to console" or "send a tweet" or "modify each item". It takes an input and returns an output. **Plugins** add to the library of steps a user can pick in their **workflow**. * An **input trigger** is a block of code that listens for an input (button press, HTTP request, etc) and generates an output that gets sent into a **workflow**. This code always runs (as long as there's a **workflow** that wants it to). * A **plugin** is a bundle of code that generates **steps** and **input triggers**.