Let me try, even thou English is not my main language ... Redux (the Flux methodology) is based on having an only source of truth, the state object, which will be kept available by all the reducers, and a only one way of updating the data and showing it on your views. Initially, the components you connect to certain parts of this state are subscribed to the changes it may suffer along the way, and will represent the data on your views, but different to the common mvc pattern, the only way to alter the state from any components is via the use of action creators. Action creators are functions that calculate or fetch data, hold or use the logic you need, to send the reducers an/some/many actions (objects with a part of the current state you'd want to change). All actions need a type , and different payloads depending on what you may want to change, so the reducers can mix/merge/assign new data to the current state to produce a new state (yes, the state should never be mutated, you always get a new one!). These are normally triggered by user actions, but could also be internal state so your views can tell the user when something is loading, or has an error, ie. Reducers, finally, are switches that are subscribed to the different parts of the state, pretty much as your components, but also to your actions, so when a particular action is fired, some reducer subscribed to this action can then mix the state with this piece of data and return the new state. There can be several reducers listening to the same action type, and all of them are passed through your actions as you are composing your root reducer .. Does this help?