https://github.com/NitorCreations/nFlow
Embeddable JVM-based workflow engine with high availability, fault tolerance, and support for multiple databases. Additional libraries are provided for visualization and REST API.
https://github.com/NitorCreations/nFlow
java nflow orchestrating-processes saga-pattern workflow workflow-automation workflow-engine
Last synced: about 2 months ago
JSON representation
Embeddable JVM-based workflow engine with high availability, fault tolerance, and support for multiple databases. Additional libraries are provided for visualization and REST API.
- Host: GitHub
- URL: https://github.com/NitorCreations/nFlow
- Owner: NitorCreations
- Created: 2014-02-02T11:56:18.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2025-05-25T18:12:03.000Z (8 months ago)
- Last Synced: 2025-07-24T17:07:16.461Z (6 months ago)
- Topics: java, nflow, orchestrating-processes, saga-pattern, workflow, workflow-automation, workflow-engine
- Language: Java
- Homepage:
- Size: 30.9 MB
- Stars: 217
- Watchers: 51
- Forks: 44
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
- awesome-workflow-engines - nFlow - Embeddable JVM-based workflow engine with high availability, fault tolerance, and support for multiple databases. Additional libraries are provided for visualization and REST API. (Library (embedded usage))
README
#


nFlow is a battle-proven solution for orchestrating business processes. Depending on where you're coming from, you can view nFlow as any of the following:
* Microservices orchestrator (as in [Saga-pattern](https://microservices.io/patterns/data/saga.html))
* Guaranteed delivery computing
* Replacement for [business process engine](https://www.techopedia.com/definition/26689/business-process-engine-bpe)
* Persistent [finite-state machine](https://en.wikipedia.org/wiki/Finite-state_machine)
nFlow has been under development since 2014-01-14 and version 1.0.0 was released on 2014-09-13.

## Key Features
* Non-declarative — workflows are defined as code
* Visualization — workflows can be visualized in [nFlow Explorer](https://github.com/NitorCreations/nflow/tree/master/nflow-explorer)
* Embeddable — usually embedded as a library, but a standalone server is also provided
* High availability — the same workflows can be processed by multiple deployments
* Fault tolerant — automatic recovery if runtime environment crashes
* Atomic state updates — uses and requires a relational database for atomic state updates and locking
* Multiple databases supported — PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server, DB2, H2
* Open Source under EUPL
## 1 Minute Guide for Getting Started
Create a Maven project. Add the following to your `pom.xml`. nFlow is available in the [Maven Central Repository](https://search.maven.org/search?q=g:io.nflow).
```xml
io.nflow
nflow-jetty
10.0.1
```
Create a class for starting nFlow in embedded Jetty using H2 memory database.
```java
import io.nflow.jetty.StartNflow;
public class App {
public static void main(String[] args) throws Exception {
new StartNflow().startJetty(7500, "local", "");
}
}
```
That's it! Running `App` in your favourite IDE will start nFlow server though without any workflow definitions.
Point your browser to [http://localhost:7500/nflow/ui/doc/](http://localhost:7500/nflow/ui/doc/) and you can use interactive online documentation for the nFlow REST API.
Point your browser to [http://localhost:7500/nflow/ui/explorer/](http://localhost:7500/nflow/ui/explorer/) and you can use nFlow Explorer.
See [Getting started section](https://github.com/NitorCreations/nflow/wiki/Getting-Started) for instruction on creating your own workflow definitions.
For a more thorough getting started guide, configurations, license information etc. checkout the [nFlow wiki pages](https://github.com/NitorCreations/nflow/wiki)! You can also look into a short [slide deck](https://github.com/NitorCreations/nflow/raw/master/nflow-documentation/presentations/nflow_presentation.pdf).
Discussion and questions are welcome to our forum [nflow-users](https://groups.google.com/forum/#!forum/nflow-users) in Google Groups.
For commercial support, contact [Nitor sales](mailto:sales@nitor.com).