OpenSPARKL Core Sequencing Engine
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.
These dependencies must be present on the dev machine you use to build SPARKL:
- Erlang OTP 20
To get the code and get everything downloaded and built (but not a distro):
git clone https://github.com/opensparkl/sse_core.git 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
- Open terminal
sudo ln -s ./security/pam_appl.h pam_appl.h
crypto.so: 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
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.
ossp_uuid Fails to compile (e.g. uuid.h missing)?
If ossp_uuid doesn't compile, it could be that the
prepare.sh script they provide is invoking
cc with a flag
-m32. It does this if the wordsize is 4, that is to say it's a 32-bit machine such as ARM7/Raspberry Pi etc. The solution is to remove the
CFLAGS=$CFLAGS and the
LDFLAGS=$LDFLAGS environment variable assignments from the last line of this file, which otherwise take effect for the invocation of
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:
or to fire up a second node:
make node DIR=nodes/sse2
Now you'll have:
- http://localhost:8000 and
When developing, you don't need to generate a release, just do
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
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
Run only common tests with