MCPcopy Index your code
hub / github.com/NitorCreations/nflow

github.com/NitorCreations/nflow @11.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 11.0.0 ↗ · + Follow
2,728 symbols 11,149 edges 409 files 412 documented · 15%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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 Maven Central Coverage 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 Apache License 2.0

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>11.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.

For commercial support, contact Nitor sales.

Extension points exported contracts — how you extend this code

SQLVariants (Interface)
Abstracts the differences of different SQL backends. [6 implementers]
nflow-engine/src/main/java/io/nflow/engine/internal/storage/db/SQLVariants.java
WorkflowState (Interface)
(no doc) [2 implementers]
nflow-explorer/src/types.ts
WorkflowInstanceValidator (Interface)
(no doc) [1 implementers]
nflow-tests/src/test/java/io/nflow/tests/AbstractNflowTest.java
WorkflowExecutorListener (Interface)
WorkflowExecutorListener is a global, stateless listener for workflow executors. The interface contains default (no-op) [3 …
nflow-engine/src/main/java/io/nflow/engine/listener/WorkflowExecutorListener.java
NewWorkflowInstance (Interface)
* Used when creating a new Workflow instance to database
nflow-explorer/src/types.ts
WorkflowState (Interface)
Provides access to the workflow state information. [3 implementers]
nflow-engine/src/main/java/io/nflow/engine/workflow/definition/WorkflowState.java
Window (Interface)
(no doc)
nflow-explorer/src/config.ts
ListenerChain (Interface)
The workflow executor listener chain. [2 implementers]
nflow-engine/src/main/java/io/nflow/engine/listener/ListenerChain.java

Core symbols most depended-on inside this repo

get
called by 330
nflow-explorer/src/cache.ts
build
called by 259
nflow-engine/src/main/java/io/nflow/engine/exception/ExceptionHandling.java
name
called by 199
nflow-engine/src/main/java/io/nflow/engine/workflow/definition/WorkflowState.java
size
called by 163
nflow-engine/src/main/java/io/nflow/engine/internal/executor/ThresholdBlockingQueue.java
put
called by 120
nflow-engine/src/main/java/io/nflow/engine/internal/executor/ThresholdBlockingQueue.java
permit
called by 116
nflow-engine/src/main/java/io/nflow/engine/workflow/definition/WorkflowDefinition.java
setState
called by 108
nflow-engine/src/main/java/io/nflow/engine/workflow/instance/WorkflowInstance.java
add
called by 104
nflow-engine/src/main/java/io/nflow/engine/workflow/curated/MaintenanceWorkflow.java

Shape

Method 2,139
Class 452
Function 104
Interface 24
Enum 9

Languages

Java95%
TypeScript5%
Kotlin1%

Modules by API surface

nflow-engine/src/test/java/io/nflow/engine/internal/executor/WorkflowStateProcessorTest.java100 symbols
nflow-engine/src/test/java/io/nflow/engine/internal/workflow/WorkflowDefinitionScannerTest.java86 symbols
nflow-engine/src/main/java/io/nflow/engine/internal/dao/WorkflowInstanceDao.java65 symbols
nflow-engine/src/test/java/io/nflow/engine/internal/executor/WorkflowDispatcherTest.java63 symbols
nflow-engine/src/test/java/io/nflow/engine/internal/dao/WorkflowInstanceDaoTest.java60 symbols
nflow-engine/src/test/java/io/nflow/engine/internal/workflow/StateExecutionImplTest.java47 symbols
nflow-engine/src/test/java/io/nflow/engine/internal/dao/MaintenanceDaoTest.java45 symbols
nflow-engine/src/main/java/io/nflow/engine/internal/workflow/StateExecutionImpl.java45 symbols
nflow-engine/src/main/java/io/nflow/engine/internal/executor/WorkflowStateProcessor.java43 symbols
nflow-tests/src/main/java/io/nflow/tests/demo/workflow/WordGeneratorWorkflow.java36 symbols
nflow-engine/src/main/java/io/nflow/engine/workflow/instance/WorkflowInstance.java32 symbols
nflow-tests/src/test/java/io/nflow/tests/AbstractNflowTest.java31 symbols

Datastores touched

(mysql)Database · 1 repos
nflowDatabase · 1 repos
nflowDatabase · 1 repos

For agents

$ claude mcp add nflow \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact