Using Kurator-Akka to develop workflows by configuration with yaml

This is developer documentation on how to build Kurator-Akka.  See also the FP-Akka: User Documentation

For further information, see the README files in each of the projects.

Building Kurator-Akka:

You will need to have git, maven, java, and python installed to build kurator-akka.

cd into a directory you want to hang the kurator projects off of, and clone the following three projects:

  git clone https://opensource.ncsa.illinois.edu/bitbucket/scm/kurator/kurator-jython.git
  git clone https://github.com/kurator-org/kurator-akka.git
  git clone https://github.com/kurator-org/kurator-validation.git

Then build kurator-akka and kurator-validation

  cd kurator-akka
  mvn install
  cd kurator-validation
  mvn install

The kurator-akka project contains the framework for running kurator workflows written in yaml with code written in java or python. The kurator-validation project contains domain specific kurator components for quality control of biodiversity data.  kurator-jython is a hack for integration of python code in Kurator-Akka workflows using jython. 

You can also build the kurator-web web UI with:

  git clone https://gitub.com/kurator-org/kurator-web.git
  
cd kurator-web
mvn package play2:run

By default, the web UI is then accessible at http://localhost:9000/

Some more information is available in the README files for each of the projects

https://github.com/kurator-org/kurator-akka

https://github.com/kurator-org/kurator-validation

https://github.com/kurator-org/kurator-web

Adding New Actor Code

Actors may be (among others).

  1. Java classes that extend org.kurator.akka.AkkaActor and implement an onData(Object value) method.
  2. Java classes that are wrapped with org.kurator.akka.PojoActor
  3. Python classes that wrapped with org.kurator.akka.PythonClassActor.

Actors get yaml definitions that give them an ID, type, and class as defined in actors.yaml

Those IDs for actors are linked together into workflows in yaml workflow definition files.

We do not yet have a framework for adding new actor code as dependencies outside of a build of the framework (where generic actors go in kurator-akka and biodiversity domain buisness logic actors go in kurator-validation), but we intend to do this.