This document discusses combining Redux and Angular 2 for managing application state. It introduces Redux as a pattern based on Flux that uses a single state container. Key principles are a single source of truth for state, immutable state changes via pure functions, and a unidirectional data flow from views to actions to reducers to stores. The ng2-redux library makes it easy to use Redux in Angular 2 by providing store injection and selectors to observe state. Redux can reduce complexity for large single-page apps and is applicable to Angular.