https://github.com/flipkart-incubator/flux
Highly scalable Event-driven, Reactive system for building Stateful apps and Workflow services.
https://github.com/flipkart-incubator/flux
async event-driven reactive state-machines workflows
Last synced: 7 months ago
JSON representation
Highly scalable Event-driven, Reactive system for building Stateful apps and Workflow services.
- Host: GitHub
- URL: https://github.com/flipkart-incubator/flux
- Owner: flipkart-incubator
- License: apache-2.0
- Created: 2016-02-04T12:18:14.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-03T18:42:51.000Z (about 1 year ago)
- Last Synced: 2025-03-28T19:09:37.344Z (7 months ago)
- Topics: async, event-driven, reactive, state-machines, workflows
- Language: Java
- Homepage:
- Size: 7.47 MB
- Stars: 107
- Watchers: 28
- Forks: 44
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Flux
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](https://www.youtube.com/watch?v=gddh5J2qB3k). Please go through the [wiki](https://github.com/flipkart-incubator/flux/wiki) pages to find out more about flux.
## Releases
| 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
Changelog can be viewed in [CHANGELOG.md](https://github.com/flipkart-incubator/flux/blob/master/CHANGELOG.md) 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:9996/admin/dashboard
Additionally, you can also inspect individual state machine execution DAGs and audit data at http://localhost:9999/admin/fsmview
Click [here](https://drive.google.com/file/d/0BxBoQMKaBB04NzRYQXRXdThrNXM/view?usp=sharing) to see how Flux state machine instance graph and audit look like.
## 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](https://github.com/flipkart-incubator/flux/wiki)## Getting help
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## License
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)## 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