Workflow

Workflow patterns over a monad for thread state logging & recovery

Version on this page:0.8.3@rev:1
LTS Haskell 11.22:0.8.3@rev:1
Stackage Nightly 2018-03-12:0.8.3@rev:1
Latest on Hackage:0.8.3@rev:2

See all snapshots Workflow appears in

BSD-3-Clause licensed by Alberto Gómez Corona
Maintained by [email protected]
This version can be pinned in stack with:Workflow-0.8.3@sha256:1be542eaf091e04c561a2a589f37330b0a65d6d3d5a44609c197a74e8385c64b,2827

Transparent support for interruptible computations. A workflow can be seen as a persistent thread that executes a 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 communication failures, timeouts or shutdowns. It also can be used if you like to restart your program at the point where the user left it last time . . The computation can be restarted at the interrupted point thanks to its logged state in permanent storage. The thread state is located in files by default. It can be moved and continued in another computer. Besides that, the package also provides other higher level services associated to workflows: Workflow patterns, and a general configuration utility, workflow observation events and references to the internal state. The state can be stored maintaining memory references (using the RefSerialize package), so that it is possible to track the modifications of a big structure (for example a document) along the workflow execution.

See Control.Workflow for details

In this release: * Adaptation for MonadMask instance introduced in the package exceptions-0.6