NgRx is a framework for building reactive applications in Angular. NgRx provides state management, isolation of side effects, entity collection management, router bindings, code generation, and developer tools that enhance developers experience when building many different types of applications.
NgRx provides state management for creating maintainable explicit applications, by storing single state and the use of actions in order to express state changes.
Store is an observable of state and an observer of actions.
soldTheHat. An effect waiting for this action triggers and makes the order to get the new hat.