Coordination backend is required to support workflows with multiple branches or tasks with items and actions with concurrency policies defined.
StackStorm utilizes the
OpenStack Tooz library for communicating with the coordination backend.
The coordination backend must support the
Locking functionality as defined by the
interface. Please refrence the OpenStack Tooz compatability page
for more information what interfaces are implemented by various backends.
The following is a list of backends that can be configured for the coordination service. For the full list of the supported backends and how to configure them, please visit OpenStack Tooz documentation.
file (for testing when all the services are running on a single host)
The configuration of the coordination service is done in the
/etc/st2/st2.conf. The following are configuration examples for Redis and Zookeeper.
[coordination] url = redis://:password@host:port
[coordination] url = kazoo://username:password@host:port
Some of these coordination backends also require corresponding client libraries to be installed in StackStorm virtualenv. Since StackStorm v3.5 the redis client libraries are included with the st2 package, but for all other versions or coordination backends, we do not ship these libraries by default. As an example, to install the client library in StackStorm virtualenv, run:
sudo su # Example when using consul backend /opt/stackstorm/st2/bin/pip install consul