Redux is a predictable state container built on three core principles: a single store, read-only state changed only via actions, and pure reducers that compute the next state. Data flows one way, making changes traceable.
The three principles
1. Single source of truth — the whole app's state lives in ONE store object
2. State is read-only — you never mutate it; you DISPATCH actions to change it
3. Changes via pure reducers — (state, action) => newState, no side effects
