# ngrx/store

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ngrx-store).**

3,869 stars · 309 forks · TypeScript · MIT · archived

## Links

- GitHub: https://github.com/ngrx/store
- awesome-repositories: https://awesome-repositories.com/repository/ngrx-store.md

## Topics

`angular` `ngrx` `redux` `rxjs`

## Description

This project is a reactive state management library designed for Angular applications. It provides a centralized store that maintains a single immutable source of truth, ensuring that all application data transitions follow a predictable, unidirectional flow.

The library implements the Redux pattern, utilizing discrete actions and pure functions to trigger state updates. It leverages observable streams to propagate these changes, allowing user interface components to bind reactively to specific slices of data. By isolating asynchronous operations and external interactions into independent action-driven streams, the framework keeps core business logic decoupled from side effects.

Beyond state handling, the system includes comprehensive instrumentation for debugging and inspection. Developers can record sequences of actions and state snapshots to replay, pause, or revert application history. The library also supports synchronization between the centralized store and browser navigation events to maintain consistency across the application.

## Tags

### Web Development

- [State Management Libraries](https://awesome-repositories.com/f/web-development/angular-application-frameworks/state-management-libraries.md) — Provides a reactive, centralized state container designed specifically for Angular applications.
- [Angular Application Frameworks](https://awesome-repositories.com/f/web-development/angular-application-frameworks.md) — Provides a centralized source of truth for managing complex data within Angular applications.
- [Centralized State Management](https://awesome-repositories.com/f/web-development/hydration-state-management/browser-side-state-management/centralized-state-management.md) — Maintains application data in a single immutable structure with predictable, unidirectional flow. ([source](https://github.com/ngrx/store#readme))
- [Reactive Programming Frameworks](https://awesome-repositories.com/f/web-development/reactive-programming-frameworks.md) — Leverages observable streams to propagate data changes and drive reactive user interface updates.

### Software Engineering & Architecture

- [Redux Implementations](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations.md) — Implements a predictable architecture using pure functions and discrete actions to manage application state.
- [Redux State Management](https://awesome-repositories.com/f/software-engineering-architecture/redux-state-management.md) — Implements a predictable state container using actions, reducers, and a unidirectional data flow.
- [Unidirectional Data Flow Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/action-reducer-architectures/unidirectional-data-flow-architectures.md) — Ensures consistent application behavior by enforcing a strict, predictable cycle where actions trigger unidirectional state updates.
- [Action Dispatching](https://awesome-repositories.com/f/software-engineering-architecture/action-dispatching.md) — Triggers state transitions by dispatching action objects to a central store for traceable updates. ([source](https://github.com/ngrx/store/blob/master/README.md))
- [Action-Driven Side Effect Triggers](https://awesome-repositories.com/f/software-engineering-architecture/action-driven-side-effect-triggers.md) — Decouples asynchronous side effects from core business logic by mapping them to independent, action-driven streams.
- [Reactive Stream Architectures](https://awesome-repositories.com/f/software-engineering-architecture/reactive-stream-architectures.md) — Propagates state changes through observable streams to enable automatic, reactive updates in user interface components.
- [Asynchronous Side Effect Launchers](https://awesome-repositories.com/f/software-engineering-architecture/side-effect-handlers/side-effect-execution-encapsulation/asynchronous-side-effect-launchers.md) — Isolates external API calls and background tasks into independent streams to maintain clean and testable business logic.

### User Interface & Experience

- [Reactive State Management Libraries](https://awesome-repositories.com/f/user-interface-experience/reactive-state-management-libraries.md) — The library retrieves specific portions of the application state as observable streams to reactively update user interface components whenever the underlying data changes. ([source](https://github.com/ngrx/store/blob/master/README.md))
- [Reactive Data Bindings](https://awesome-repositories.com/f/user-interface-experience/reactive-data-bindings.md) — Synchronizes user interface components with observable data streams for automatic view updates.

### Data & Databases

- [State Slice Subscriptions](https://awesome-repositories.com/f/data-databases/set-to-slice-exports/state-slice-subscriptions.md) — Retrieves specific slices of state as observable streams that emit only when the underlying data changes.

### Development Tools & Productivity

- [Application Debugging Tools](https://awesome-repositories.com/f/development-tools-productivity/application-debugging-tools.md) — Offers a suite of instrumentation utilities for inspecting and replaying application state history.
- [Debugging and Inspection Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools.md) — Provides instrumentation to record and replay state changes for troubleshooting complex logic and user interactions.
- [State Debugging Utilities](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/state-debugging-utilities.md) — Enables developers to inspect, pause, and revert application history by recording and replaying state transitions. ([source](https://github.com/ngrx/store#readme))
- [Time-Travel Debuggers](https://awesome-repositories.com/f/development-tools-productivity/time-travel-debuggers.md) — Records action sequences and state snapshots to allow developers to replay, inspect, and debug application history.

### Testing & Quality Assurance

- [Side Effect Isolation](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-isolation/logic-isolation-utilities/business-logic-isolation/side-effect-isolation.md) — Separates external system interactions from business logic by mapping them to isolated action streams. ([source](https://github.com/ngrx/store#readme))
