Why mkworkflow ?

Registered by Franck

Origins and goals of mkworkflow

Blueprint information

Status:
Not started
Approver:
None
Priority:
Essential
Drafter:
None
Direction:
Approved
Assignee:
None
Definition:
Review
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Origins of mkworkflow :

Mkworkflow is the result of rewriting the osworkflow workflow engine.
Most concepts of OSWorkflow were kept in the process, but some of them where abandoned.

Why :

mkworkflow was written for two reasons : first of all OSWorkflow is not active anymore. Attempts to submit (minor) patches had no success. Secondly, the objectives of mkworkflow implied a rewriting of the core of OSWorkflow. So a fork was needed.

The objectives of mkworkflow are:

- thread-safety: this is the major point. OSWorkflow is not thread-safe and relies on database transactions (eg JTA) to maintain its coherence. Even with transactions, it will result in failed actions in case of strong concurrency. So this is fine for human interaction, but not suitable for multi-threaded machine interaction.
So mkworkflow is an engine that will create a finite state machine with safe and thread-safe transitions.

- cleaner design: mkworkflow wants to be a clean and understandable implementation. Its objectives are to be embed-able, so this is a key feature. Especially it cleanly separates workflow instances and workflow manager.
Code is commented to make modifications and contributions easy. Key word is "as simple as possible".

- usability: while mkworkflow is extensible (and open source), one goal is to make it easy and straighforward to implement current workflow patterns (as found for example in http://www.workflowpatterns.com/)

Goals:

mkworkflow is a versatile workflow engine, written in java, that can be embedded in your project. It provides a workflow definition infrastructure, database persistence and ways to implement actions in your code or in external libraries.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.