I’ve got this itch for a long time now to try and see how easy it is to write a BPM engine on a graph database such as Neo4J. After all, the data model fits perfectly, as business processes are graphs and executions of those processes basically boil down to keeping pointers to where you are in that graph. It just feels as a very natural fit.
So I spend some time implementing a prototype, which you can find on https://github.com/jbarrez/activiti-neo4j
The prototype contains some unit tests which execute simple BPMN 2.0 processes. I tried to be as close as possible to the Activiti concepts of services, commands, executions, JavaDelegates, etc. Currently covered:
Much more information can be found at the readme on https://github.com/jbarrez/activiti-neo4j
I must say that working with Neo4j and its graph model for processes feel very very natural. It really simplifies stuff a lot and I can feel great potenital. Feel free to clone the code and check the code, it’s a regular maven project.
Note: we’re not moving to Neo4J with Activiti. This is just an experiment for myself. Of course, if you want to contribute you’re more than welcome!