Flux is an architecture for unidirectional data flow. By forcing the data to flow in a single direction, Flux makes it easy to reason “how data-changes will affect the application” depending on what actions have been issued. The components themselves may only update application-wide data by executing an action to avoid double maintenance nightmares.
Redux — usually seen with React but it can be used separately — proved to be a successful implementation of Flux. It can handle application state and bind it to the User Interface in a very effective way. RefluxJS, another independent implementation, refactored Flux to be a bit more dynamic and more Functional Reactive Programming (FRP) friendly.