Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danielgerlag/workflow-es
Workflow / durable task library for Node.js (or modern browsers)
https://github.com/danielgerlag/workflow-es
workflow workflow-engine
Last synced: about 1 month ago
JSON representation
Workflow / durable task library for Node.js (or modern browsers)
- Host: GitHub
- URL: https://github.com/danielgerlag/workflow-es
- Owner: danielgerlag
- License: mit
- Created: 2016-11-29T19:42:24.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-04-27T17:19:58.000Z (over 3 years ago)
- Last Synced: 2024-07-18T22:15:20.031Z (5 months ago)
- Topics: workflow, workflow-engine
- Language: TypeScript
- Homepage:
- Size: 184 KB
- Stars: 198
- Watchers: 18
- Forks: 48
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nestjs - workflow-es
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)](es2017-guide.md)
* [Typescript](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](LICENSE.md) file for details