Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status License

OpenSPARKL Core Sequencing Engine

OpenSPARKL Project Home

OpenSPARKL is a framework which unifies orchestration with application logical flow.

It allows you to define, execute and trace pure tree-based devops and business workflows that unify lambda, microservice, containerized and traditional environments.

The core sequencing engine (sse) uses tree-based configuration to drive workflows and automate provisioning, while producing unified event logs and audit trails.

Building SPARKL

These dependencies must be present on the dev machine you use to build SPARKL:

  • Erlang OTP 22

To get the code and get everything downloaded and built (but not a distro):

git clone
cd sse_core
make all

YAWS Compile Error?

If there's an error compiling YAWS you may need to get the libpam_dev package, e.g. in Ubuntu:

sudo apt-get install libpam-dev

On the Mac, you get an error about missing pam_appl.h. To fix this, you need to put that header file in the place YAWS compile expects it so as to reference it as #include <pam_appl.h>:

  • Open terminal
  • cd /Applications/
  • cd Developer/SDKs/MacOSX10.10.sdk/usr/include
  • sudo ln -s ./security/pam_appl.h pam_appl.h undefined symbol: EC_GROUP_new_curve_GF2m

If crypto:start() fails with this error, it's because the Erlang has been compiled expecting a particular encryption capability that isn't enabled in e.g. Centos 6.4. If that's a packaged Erlang you're using, then you'll need to remove it and compile your own from sources (this is reliable, don't worry).

The packaged Centos 17.4 release doesn't show this behaviour, but if you can't get around it then you need to recompile OTP with new environment variable set during configuration phase:

  • CFLAGS="-DOPENSSL_NO_EC=1 -O2 -g" ./configure
  • make
  • make install

I have noticed that ./configure only works once. Completely erase the Erlang source directory and recreate it from the downloaded source.tar.gz file before doing the above.

Erlang Multiple Module Declaration Error?

If you get an error where 2 Erlang apps import the same module (I got this with appmon and runtime_tools both wanting to import appmon_info) then you could be suffering from a new version of Erlang moving a module from one app to another. Try wiping all Erlang from your dev machine, including /usr/local/lib/erlang if any is left over, then re-install from the Erlang Solutions download.

Now you can fire up an sse instance with console:

make node

or to fire up a second node:

make node NODE_DIR=nodes/sse2

Now you'll have:

  • http://localhost:8000 and
  • https://localhost:9000
as the sse URL. Note that the https uses a self-signed cert which causes an initial error on e.g. Chrome. The dev console app uses CORS and you'll need to click past the warning using the above link before you can point the app at the https port.

When developing, you don't need to generate a release, just do

make debug

Generated Docs

The generated edocs are the authoritative repository of how SPARKL works. Make sure you know how to write, generate and read them.

The docs are generated when you do an initial make all. This target includes the make docs step that builds the edocs, so when coding make sure you write the docs and regularly do make docs to ensure the docs build right and format correctly.


Run only unit tests with

make eunit

Run only common tests with

make ct
You can’t perform that action at this time.