NitorCreations/nflow


nFlow is a battle-proven solution for orchestrating business processes. It can be used as microservices orchestrator (Saga-pattern), as business process engine or as persistent finite-state machine.

License: EUPL-1.1

Language: Java

Keywords: java, nflow, orchestrating-processes, saga-pattern, workflow, workflow-automation, workflow-engine


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:

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, Oracle, Microsoft SQL Server, DB2, H2
  • Open Source under EUPL

Getting Started

1 Minute Guide

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>5.3.3</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 the next sections for creating your own workflow definitions.

Note! Starting from 4.0.0 release, nFlow requires Java 8 or newer. Older releases require Java 7 or newer.

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.

Project Statistics

Sourcerank 6
Repository Size 12.1 MB
Stars 45
Forks 15
Watchers 46
Open issues 5
Dependencies 970
Contributors 10
Tags 45
Created
Last updated
Last pushed

Top Contributors See all

Edvard Fonsell Juha Syrjälä Esa Puttonen Isto Nikula Mikko Tiihonen Timo Tiuraniemi Janne Sinivirta Timo Tiuraniemi Markku Rontu Ilari Kontinen

Packages Referencing this Repo

io.nflow:nflow-root
nFlow Root
Latest release 5.3.3 - Updated - 45 stars
com.nitorcreations:nflow-tests
nFlow integration tests
Latest release 3.3.0 - Updated - 45 stars
com.nitorcreations:nflow-root
nFlow Root
Latest release 3.3.0 - Updated - 45 stars
com.nitorcreations:nflow-rest-api
nFlow REST API
Latest release 3.3.0 - Updated - 45 stars
com.nitorcreations:nflow-jetty
nFlow Jetty
Latest release 3.3.0 - Updated - 45 stars
com.nitorcreations:nflow-engine
nFlow Engine
Latest release 3.3.0 - Updated - 45 stars
com.nitorcreations:nflow-metrics
Integrate http://metrics.dropwizard.io/ with nFlow
Latest release 3.3.0 - Updated - 45 stars

Recent Tags See all

5.3.3 February 04, 2019
5.3.2 February 04, 2019
5.3.1 January 13, 2019
5.3.0 January 03, 2019
5.2.0 November 20, 2018
5.1.0 October 18, 2018
5.0.1 September 14, 2018
5.0.1 September 14, 2018
v1.2.8 September 14, 2018
5.0.0 September 11, 2018
5.0.0 September 11, 2018
v1.2.7 September 08, 2018
v1.2.6 August 24, 2018
4.2.0 May 16, 2017
v1.2.5 May 16, 2017

Something wrong with this page? Make a suggestion

Last synced: 2019-03-12 22:02:57 UTC

Login to resync this repository