@smallstack/workflow

smallstack products often run in cloud environments inside multi tenant based systems, therefor adding customer related business logic via code changes or external services is an overhead, especially for the little things in life. The Workflow Engine shall solve this problem.

Usage no npm install needed!

<script type="module">
  import smallstackWorkflow from 'https://cdn.skypack.dev/@smallstack/workflow';
</script>

README

smallstack Workflow Engine

smallstack products often run in cloud environments inside multi tenant based systems, therefor adding customer related business logic via code changes or external services is an overhead, especially for the little things in life. The Workflow Engine shall solve this problem.

What is a workflow?

A Workflow consists of Workflow Blocks and Socket Connections which connect the different blocks together.

Workflow Block

A Block can be any valid javascript object (React/Angular/Vue Components, a database object, plain JS object etc.) that implements the WorkflowBlockDefinition interface. Blocks have inputs and outputs, so called Sockets. Blocks get data via their Input Sockets and can output results via their Output Sockets.

Socket Connections

A Socket Connection connects 2 Block Sockets, e.g. BlockA::Ouput --> BlockB::Input

Example

workflow

We have 4 Blocks: TextField, NumberField, StringUtilBlock and Alert. The TextField Block's output socket StringOut is connected to StringUtilBlock's Capitalize input. The only Output of the StringUtilBlock (called Output) is connected to the StringInput Input of the Alert. If the TextField Block outputs a text like "hello world", the Alert Block will most likely get the text "Hello world" (depending on what the StringUtilBlock actually does with the data it got).

This is a UI example, but it can be projected to any other set of blocks. The library has no dependencies and can be used in browsers or nodejs environments.