Workflow-0.3: Workflow.cabal
name: Workflow
version: 0.3
synopsis: library for transparent execution of computations across shutdowns and restarts
description:
transparent low level support (state logging, resume of the computation state, wait for data condition) for very long time
long living event driven processes. Workflow give the two first services to any monadic computation of type (a-> m a)
f x >>=\x'-> g x' >>= \x''->... z
by prefixing each action with the method "step":
step f x >>= \x'-> step g x' >>= \x''->...
This means that a workflow can be described with the familiar "do" notation. In principle, there is no other limitation
on the syntax but the restriction (a -> m a): All computations consume and produce the same type of data.
for a monadic computation, Workflow provides:
- transparent checkpointing for each step in permanent storage (using TCache)
- sync or async syncronization of each action results with disk.
- after soft or hard interruption, resume the monadic computation at the last checkpoint
- retrieval of the returned value of any previous action
- suspend the computation until the input object meet certain conditions. useful for inter-workflow
comunications.
For various reasons, this package force the use of TCache for storage and refSerialize for writing to/from strings
at the end of the workflow all the intermediate data is erased.
see demo.hs and the header of Control.TCache for documentation.
this version uses Data.TCache.Dynamic
category: Control
license: BSD3
license-file: LICENSE
author: Alberto Gómez Corona
maintainer: agocorona@gmail.com
Tested-With: GHC == 6.8.2
Build-Type: Simple
build-Depends: base, RefSerialize>=0.2.3, TCache>=0.5.5, stm > 2, old-time
Cabal-Version: >= 1.2
exposed-modules: Control.Workflow
ghc-options: