Highly scalable Event-driven, Reactive system for building Stateful apps and Workflow services.

async, event-driven, reactive, state-machines, workflows



Flux is an asynchronous, scalable, optionally multi-tenant & distributed and reliable state machine based orchestrator. Flux can be used to build Workflows and Reactive apps that are stateful.


Release Date Description
Version 1.0-SNAPSHOT Jun 2016 First release for user trials


Changelog can be viewed in file

Why Flux

A number of real-world stateful systems like workflows, event-driven reactive apps can be modeled as state machines. Event sources are many - user actions, messages passed between systems and data changes to business entities. Flux provides a programming model and client SDK to build event-driven reactive apps. The runtime allows to run multiple state machine instances concurrently.

Flux Visualization & Monitoring

Flux allows you to monitor real-time execution of all running state machine tasks. Default path for dashboard is http://localhost:9999/admin/dashboard


Additionally, you can also inspect individual state machine execution DAGs and audit data:


Documentation and Examples

Flux examples are under "examples" module. Each example can be run independently. Flux has very few dependencies and the simplest examples can be run in under 5 minutes. Documentation is continuously being added to the Flux wiki

Getting help

For help regarding usage, or receiving important announcements, subscribe to the Flux users mailing list: To get involved in the evolution of Flux, subscribe to the Flux interest mailing list:


Flux is licensed under : The Apache Software License, Version 2.0. Here is a copy of the license (

Building with Flux

The Flux system design is organized into multiple layers to support building, testing, deploying and operating workflows in a shared environment:


  • UI - Provides for inspecting workflow execution and administration tasks on deployed instances/templates
  • API/Modelling - Provides primitives for modelling State machines and reacting to state transitions, complex DAG-like workflows
  • Runtime - Multiple variants from single JVM to distributed and isolated runtimes
  • Integration - Support for operating the system i.e. Monitoring, Metrics and RPC mechanisms for running isolated runtimes
  • Deployment - Providing mechanisms for cluster discovery, work distribution

Please go through the wiki pages to find out more about flux.