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.
Flux quick introduction video is available here. Please go through the wiki pages to find out more about flux.
Release | Date | Description |
---|---|---|
Version 1.2.5 | Feb 2022 | Versioned workflows, multiple runtime modes |
Version 1.2.1(stable)(tag 1.2.1) | Oct 2017 | new features set |
Version 1.2.0(beta) | Oct 2017 | new features set |
Version 1.0.1 | Feb 2017 | Bug fixes |
Version 1.0 | Jan 2017 | Initial stable release |
Changelog can be viewed in CHANGELOG.md file
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 allows you to monitor real-time execution of all running state machine tasks. Default path for dashboard is http://localhost:9996/admin/dashboard
Additionally, you can also inspect individual state machine execution DAGs and audit data at http://localhost:9999/admin/fsmview
Click here to see how Flux state machine instance graph and audit look like.
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
For help regarding usage, or receiving important announcements, subscribe to the Flux users mailing list: http://groups.google.com/group/flux-users To get involved in the evolution of Flux, subscribe to the Flux interest mailing list: http://groups.google.com/group/flux-interest
Flux is licensed under : The Apache Software License, Version 2.0. Here is a copy of the license (http://www.apache.org/licenses/LICENSE-2.0.txt)
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