I am in a project that is very restricted to time and dead line where Workflow engine option (K2 Blackpearl) will save a lot for me, taking in consideration that my process considered pretty complex (27 steps). Here is my case:
I am working on a competition based process, all instances will be instantiated during 1 week time and the process life cycle is 16 months (each process will always last for 16 months), after this time ;next cycle comes and new instances are created and so on. As everybody knows; current process instances are not allowed to be modified in terms of process definition, So I think this is a very big risk that totally disables the maintenance .
My concern is suppose I got a bug in the process and I discovered that after 5 months can I fix the current running instances to work on, or suppose some business changed during the 16 months(which is a very common thing in workflow world); can I change the currently running instances, or I need to tell the client that I will fix this now but you will see the effect only on the newly created process instances that will be run next year !!! Which is totally not acceptable!!
I think there should be a way to modify the running instances in workflow engines otherwise, such system will not be useful for long running business.
I am at a moment where I need to take a technical decision to follow one of these two approaches:
- Use workflow engine to implement my business process. (this will save time and increase the risk)
- Use a flag based SQL database and wrap the business between tables & DLLs. (this will increase time but save risks as system will keep being maintainable)
What do you think?