Transparent support for interruptable 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 such monad is encapsulated inside
a state monad transformer that transparently checkpoint the computation state. Besides that, the package also provides
other services associated to workflows
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.-
- Communications with other processes including other workflows trough persistent data objects,
inspection of intermediate workflow results , persistent queues, persistent timeouts so that no data is lost due
- A workflow can initiate anoter workflow and wait for the resutl
- workflow management and monitoriing, view workflow history and intermediate results.