This repository contains examples of workflows built with Zenaton. These examples illustrates how Zenaton orchestrates tasks that are executed on different workers.
Download this repo
git clone https://github.com/zenaton/examples-node.git
and install dependencies
npm install
then add an .env file
cd examples-node; npm install ; cp -n .env.example .env
and populate it with your application id and api token found here.
Then, you need to install a Zenaton worker
curl https://install.zenaton.com | sh
and start it, and make it listen to your configuration:
zenaton start; zenaton listen --env=.env --boot=boot.js
Your all set!
Your workflows will be processed by your worker, so you won't see anything except the stdout and stderr, respectively zenaton.out
and zenaton.err
. Look at these files :)
This example showcases
- a sequential execution of two tasks. The second task is executed only when the first one is processed.
- In a sequential task execution, you can get the output of a task. The result of the first task can be used by the second one.
node launch_sequential.js
This example showcases
- a parallel execution of 2 tasks
- a third task that is executed only after both first two tasks were processed
node launch_parallel.js
this example showcases
- An asynchronous execution of a task A (fire and forget)
- Then a sequential execution of Task B
node launch_asynchronous.js
When a task is dispatched asynchronously, the workflow continues its execution without waiting for the task completion. Consequently, a task asynchronous dispatching always returns a null value.
This example showcases
- how to change a workflow's behaviour based on an external event
node launch_event.js
This example showcases
- how the provided
Wait
task can be used to pause the workflow for a specified duration
node launch_wait.js
This example showcases
- how the provided
Wait
task can also be used to pause the workflow up to receiving a specific external event
node launch_wait_event.js
This example showcases
- how launching events or workflows directly from orchestrated tasks allows you to schedule recurring workflows
node launch_recursive.js
This example showcases
- how to update your workflow implementation, even while previous versions are still running
node launch_version.js