This book will help you learn NgRx in and out. We will start by discussing the fundamental ideas that underpin the design for the centralized store and the need for state management in Angular. We will then learn about the Redux paradigm and the three rules it governs. Along the way, we will explore various Redux terminologies in terms of action, dispatcher, and reducer and will then create our minimalistic version of Redux. We will have a dedicated chapter that paves the way for an Angular application in which we will be integrating NgRx throughout the book. We will also work with Redux Devtools, which will be crucial to debugging NgRx. The book also focuses on the creation of the NgRx Store using @ngrx/schematics and hooking it up in the sample Angular application we built previously. Till here, the sample Angular application is purely relying on NgRx to read/write the application state except for the router state. Next, we will leverage the NgRx Router Store to bring the router state under the radar of NgRx as well so that the entire sample Angular application would be using a single source of truth in terms of NgRx for any application data. Towards the end, we will optimize the list of records using a proven entity state adapter pattern via NgRx Entity to interact with such records at the individual level to be efficient and performant.