Skip to content

Embeddable JVM-based workflow engine with high availability, fault tolerance, and support for multiple databases. Additional libraries are provided for visualization and REST API.

Notifications You must be signed in to change notification settings

NitorCreations/nflow

Repository files navigation

nFlow nFlow

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:

nFlow has been under development since 2014-01-14 and version 1.0.0 was released on 2014-09-13.

Build status

Key Features

  • Non-declarative — workflows are defined as code
  • Visualization — workflows can be visualized in 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.

<dependency>
  <groupId>io.nflow</groupId>
  <artifactId>nflow-jetty</artifactId>
  <version>9.0.0</version>
</dependency>

Create a class for starting nFlow in embedded Jetty using H2 memory database.

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/ and you can use interactive online documentation for the nFlow REST API.

Point your browser to http://localhost:7500/nflow/ui/explorer/ and you can use nFlow Explorer.

See Getting started section for instruction on creating your own workflow definitions.

Ok, I'm interested

For a more thorough getting started guide, configurations, license information etc. checkout the nFlow wiki pages! You can also look into a short slide deck.

Discussion and questions are welcome to our forum nflow-users in Google Groups.