Use NgRx when your Angular app grows complex and you need predictable state management, especially with lots of shared or nested data. It shines with large teams, debugging, and time-travel dev tools. Avoid it for small apps.