We've been working on a directed graph execution engine called Converge https://github.com/asteris-llc/converge.
In this case the task resource http://converge.aster.is/0.5.0/resources/task/ might help, as it allows you to create a directed graph using any kind of interpreter (for example, Python or Ruby) instead of having to use the DSL.