Redux
Using Redux to Manage State in Angular 1 Pluralsight course page 1
Redux attempts to make state mutations predictable 2 by imposing certain restrictions on how and when updates can happen. Overkill if application is small. Comes with ts bindings, first class support for Angular.
diagram 3 
Core Principles
- single source of truth (for state), one big store
- state is read-only, immutable
- pure functions drive changes