The struggle with managing state in web apps is real. Providing answers as to what route is activated, whether your user is logged in or not, or whatever card or UI element is selected isn't challenging when you're dealing with a handful of components, but it quickly becomes a mess as your applications grows. AngularJS had numerous issues with scope soup, and while components and services do a lot to solve this problem in Angular, you still might have problems scaling. Redux is revolutionary and has taken the React world by storm, and is picking up steam with Angular. Many of our projects wouldn't have been possible without it, and it can be an incredible pattern for your project.