# workflow-es

> A lightweight workflow engine for Node.js

Latest version **2.3.5** (published 2019-03-31) · MIT license · 0 weekly downloads

## Install

```sh
npm install workflow-es
pnpm add workflow-es
yarn add workflow-es
bun add workflow-es
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.3.5 |
| Published | 2019-03-31 |
| First published | 2016-11-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 483.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 216 |
| Author | Daniel Gerlag |
| Maintainers | danielgerlag |
| Keywords | workflow, saga |

## Links

- npm: https://www.npmjs.com/package/workflow-es
- Repository: https://github.com/danielgerlag/workflow-es
- Homepage: https://github.com/danielgerlag/workflow-es#readme
- Issues: https://github.com/danielgerlag/workflow-es/issues
- npm.io page: https://npm.io/package/workflow-es

## Dependencies (2)

- [inversify](https://npm.io/package/inversify.md) ^4.1.0
- [reflect-metadata](https://npm.io/package/reflect-metadata.md) ^0.1.10

## Recent versions

- 2.3.5 (latest) — 2019-03-31
- 2.3.3 — 2019-02-16
- 2.3.2 — 2018-11-25
- 2.3.0 — 2018-03-31
- 2.2.1 — 2018-03-25
- 2.2.0 — 2018-03-25
- 2.1.0 — 2018-03-25
- 2.0.2 — 2017-09-07
- 2.0.1 — 2017-05-31
- 2.0.0 — 2017-05-28
- 1.0.3 — 2017-03-03
- 1.0.2 — 2017-03-02
- 1.0.1 — 2017-03-02
- 1.0.0-beta.6 — 2016-11-30
- 1.0.0-beta.5 — 2016-11-30
- … 4 more at https://npm.io/package/workflow-es/versions

## README

# Workflow ES 

[![Build Status](https://travis-ci.org/danielgerlag/workflow-es.svg?branch=master)](https://travis-ci.org/danielgerlag/workflow-es)

Workflow ES is a workflow / saga library for Node.js (or modern browsers).  It supports pluggable persistence and concurrency providers to allow for multi-node clusters.

## Installing

Install the core npm package "workflow-es"

```
npm install workflow-es --save
```


### Guides

* [Javascript (ES6)](https://github.com/danielgerlag/workflow-es/blob/master/es2017-guide.md)
* [Typescript](https://github.com/danielgerlag/workflow-es/blob/master/typescript-guide.md)


### Persistence

Since workflows are typically long running processes, they will need to be persisted to storage between steps.
There are several persistence providers available as seperate npm packages.

* Memory Persistence Provider *(Default provider, for demo and testing purposes)*
* [MongoDB](https://github.com/danielgerlag/workflow-es/tree/master/providers/workflow-es-mongodb)
* *(more to come soon...)*

### Multi-node clusters

By default, the WorkflowHost service will run as a single node using the built-in queue and locking providers for a single node configuration.  Should you wish to run a multi-node cluster, you will need to configure an external queueing mechanism and a distributed lock manager to co-ordinate the cluster.  These are the providers that are currently available.

#### Queue Providers

* SingleNodeQueueProvider *(Default built-in provider)*
* [Azure](https://github.com/danielgerlag/workflow-es/tree/master/providers/workflow-es-azure)
* [Redis](https://github.com/danielgerlag/workflow-es/tree/master/providers/workflow-es-redis)


#### Distributed lock managers

* SingleNodeLockProvider *(Default built-in provider)*
* [Azure](https://github.com/danielgerlag/workflow-es/tree/master/providers/workflow-es-azure)
* [Redis Redlock](https://github.com/danielgerlag/workflow-es/tree/master/providers/workflow-es-redis)


## Authors

* **Daniel Gerlag** - *Initial work*


## License

This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/danielgerlag/workflow-es/blob/master/LICENSE.md) file for details

---
_Source: https://npm.io/package/workflow-es · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
