Workflows / State Engines – Any existing libraries out there?

Workflows / State Engines – Any existing libraries out there?

When you have a complex UI or complex data processing with parameterisations that defines what should be allowed, what should happen next, etc – it is necessary to have a workflow / state engine.

I am wonder if there is any prior art – apart from the TMS product (which is way too complex for our need). I don’t need a visual designer – just classes that can be used to build a workflow?

9 thoughts on “Workflows / State Engines – Any existing libraries out there?


  1. Uwe Raabe thank you for pointing to SirRufo/stateless. Anyway, under Delphi XE3, if you try to compile wathever example found in the examples folder Delphi throws an error [dcc32 Error] Stateless.Utils.pas(299): E2010 Incompatible types: ‘System.TArray’ and ‘Set’. Maybe it needs a more recent Delphi version.


  2. Currently, at this time, I’m finishing the development of my own Workflow Management tool for Financial documentation.


    I think this is a very simple, but complete solution, but… I going to see the proposals that people make here.


    I have a little requirement definition:


    – A Workflow is a list of ordered states that a document can take.


    – Each document can have as many states as needed. All of them previously contained in a Table of States.


    – The transitions between states are defined as a sublist of states related to each state in the workflow of the document.


    – Is responsability of the user that design the workflow, assure that each transition have a return transition or a continuity.


    – The system, must hold some special states, that defines things like:


    -In which state must be a document, to allow the user make certain operation?


    -After this operation, which state take the document?


    – An auxiliar functionality is, a table that relates each document, with each state, and each user of the application, and describes the constraints of each user with this document in this state, solving questions like: The user can edit?, can delete?, can clone?, can change the state?, etc.


    – It is not mandatory that the design of the workflow was in a graphic environment, but is desirable.


    – The final user, the user that manages the documents, must have a graphic representacion of the workflow, that help to understand it.


    (For this, I like the solution of representation proposed in Atlassian web).


    I’m solving all this cases with a structure of 6 tables.


    I think it’s complex, but is complete. 😉 Or not?