Redux rests on three principles: a single source of truth, read-only state, and changes made with pure functions.
Single source of truth. One store holds the global state of the whole app, in a single object tree.
State is read-only. State can only be changed by dispatching actions. An action is a plain object that describes what happened.
Changes are made with pure functions. Reducers are pure functions that specify how the state changes in response to actions.
The store applies actions one at a time in a strict order, so two state updates never interleave. And because actions are plain objects, they can be logged and replayed for debugging.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.