See the documentation and the demos (in Demos directory) included. It admits Binary and RefSerialize serialization . This is an intermediate step to allow user-defined serializations. RefSerialize mode does not work still. I hope to fix it soon.
Workflow-0.5.8: library for transparent execution of interruptible computations
Transparent support for interruptible computations. A workflow can be seen as a persistent thread that executes any monadic computation. Therefore, it can be used in very time consuming computations such are CPU intensive calculations or procedures that are most of the time waiting for the action of a process or an user, that are prone to comunication failures, timeouts or shutdowns.
The computantion can be restarted at the interrupted point because the computation is encapsulated inside a state monad transformer that transparently checkpoint the computation state. Besides that, the package also provides other services associated to workflows
New in this release, * registerType is no longer needed (made possible by the use of TCache 0.9 usage)
- configurable state persistence (for example, in databases) (made possible by the use of TCache 0.9 usage)
- optional binary serialization of state
- new simpler and more ituitive workflow start(int) primitives
- instances of classes in Control.Concurrent.MonadIO, MonadCatchIO etc
- Patterns, an EDSL of workflow patterns. To express workflows as sequences and concurrency of actions
The main features are:
- logging of each intermediate action results in disk.
- resume the monadic computation at the last checkpoint after soft or hard interruption.
- suspend a computation until the input object meet certain conditions. Useful for inter-workflow comunications.-
- Persisten communications facilities trough persistent data objects, inspection of workflow states , persistent queues, persistent timeouts, to avoid data lost due to shutdowns
- workflow management and monitoriing, view workflow history and intermediate results.