Multi-Threaded workflow system

Posted: 1 November 2013 in Java

I have just finished some touches on version 1.0 of the Workflow Engine and it already has a few good features to rival with even the best out there. Even if it needs lot of work to make it pretty on the front-end, the back-end API is resolutely quite impressive.

  • Authenticated: you must log-in to use the workflow engine,
  • Multi-threaded: each workflow arc creates a new thread, for true concurrency
  • User Tasks: the user is responsible for performing the activity, complete the task whereby the workflow transitions to the next set of tasks.
  • Programmatic tasks: Java classes can be executed by the workflow.
  • Event system: every action in the workflow creates an event. You can create custom event listeners and react as soon as an event is generated.
  • File persisted: every time  the workflow changes, the modification is written to a file (in XML format). When the engine is shut-down and re-started, user tasks can be resumed (programmatic tasks shouldn’t – there is a product backlog story to make some programmatic tasks resumable).
  • Sub-Workflows can be started enabling you to compartmentalise the processes. This is powered by the event system where the “parent” workflow listens to the sub-workflow to resume itself when the sub workflow is finished.
  • XML format graph definitions: dynamically create XML graph documents using XSL, in house Lapis executable XML documents, or Apache JellyBeans.
  • XML user repository with encrypted passwords (there is a product backlog story to enable LDAP)
  • A series of command line tools to start workflows, list workflow, change task ownership and complete tasks

Work will now start on version 1.1, featuring the following

  • Cancel workflows: a command line to cancel workflows. Workflows can be cancelled already with a workaround
  • API interfaces extracted to their own jars to be easily added to you own project. This is to create your custom actions (these are your workflows, they should perform your tasks)
  • Sub-workflows have so far been implemented as custom actions. They will be moved into the core API.
  • independent sub-workflow: the parent does not need to wait for the sub-workflow to finish before moving on. Both sub-workflow types will be implemented in the core API.
  • 3rd party API: place your jars in lib/ext and we can run your tasks.
  • There will also be a development effort to add more to the javadocs which currently are looking quite bare.

Please contact me if you wish to receive an update when version 1.1 is complete so that you can receive a development license to evaluate the product. I will try to post a video of the product soon.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s