DaCE data-centric workflow engine

Dace is a data-centric workflow engine. It enables the definition and execution of complex processes and the definition of objects of collaboration. In DaCE the rights management is based on the definition of roles.

It is licensed under a AGPLv3+ license.

Here is one of the simplest DaCE process you can make:

from dace.definition.processdef import ProcessDefinition
from dace.definition.activitydef import ActivityDefinition
from dace.definition.transitiondef import TransitionDefinition
from dace.definition.eventdef import (
    StartEventDefinition,
    EndEventDefinition)
from dace.model.services.processdef_container import (
    process_definition)

from .behaviors import (
    MyBehavior,
    )


@process_definition(
    id='myprocessid',
    title='My process')
class MyProcess(ProcessDefinition):

    def init_definition(self):
        # define process nodes
        self.define_nodes(
            # start node: the beginning of the process
            start=StartEventDefinition(),
            # hello node
            hello=ActivityDefinition(
                # MyBehavior is the behavior to execute
                # when the node is called
                behaviors=[MyBehavior],
                description='Hello behavior',
                title='Hello!'),
            # end node: the ending of the process
            end=EndEventDefinition(),
        )
        # define transitions between process nodes
        self.define_transitions(
            TransitionDefinition('start', 'hello'),
            TransitionDefinition('hello', 'end'),
        )

Getting Started

If you are new to DaCE, we have a few resources that can help you get up to speed right away.

Tutorials

Official tutorials explaining how to use Dace to build various processes, and how to connect Dace processes to various applications.

Support and Development

To report bugs, use the issue tracker.

Browse and check out tagged and trunk versions of Dace via the DaCE GitHub repository. To check out the trunk via git, use either command:

# If you have SSH keys configured on GitHub:
git clone git@github.com:ecreall/dace.git

# Otherwise, HTTPS will work, using your GitHub login:
git clone https://github.com/ecreall/dace.git

Narrative Documentation

Narrative documentation in chapter form explaining how to use Dace.

API Documentation

Comprehensive reference material for every public API exposed by Dace:

Indices and tables