We don't want to redefine what Redux is, so we will quote directly from the Redux repo (https://github.com/reactjs/redux):
The whole state of your app is stored in an object tree inside a single store. The only way to change the state tree is to emit an action, an object describing what happened. To specify how the actions transform the state tree, you write pure reducers.
The concept is fairly simple and quite brilliant. You emit actions (which are simple string typed objects with a payload representing the data to be passed along) against the system, which wind up hitting...