Client State (Reservoir)
Overview
Reservoir is the Mississippi client state-management library.
It provides the store, actions, reducers, selectors, effects, middleware, and UI integration patterns used to keep client-side state predictable and testable.
Why This Area Exists
Use Reservoir when client behavior needs explicit state transitions, repeatable side-effect handling, and selectors or tests that are independent of UI rendering details.
It gives Mississippi a dedicated client-state model instead of spreading state changes across components, callbacks, and transport glue.
Representative Packages
Mississippi.Reservoir.AbstractionsMississippi.Reservoir.CoreMississippi.Reservoir.ClientMississippi.Reservoir.TestHarness
What This Area Owns
- Store and dispatch pipeline abstractions
- Feature state, actions, reducers, selectors, effects, and middleware
- Blazor integration for applications that want Redux-style state management
How It Fits Mississippi
Reservoir can be used independently of the rest of the framework.
Within the broader stack, it is commonly used beneath Refraction and Inlet-powered clients to manage local and synchronized client state.
Use This Section
Start here when you need the client-state model itself: store behavior, reducers, effects, selectors, middleware, or the Blazor integration surface.
Choose a Reading Path
Start with a feature recipe, the local state-flow model, and the selector reference to connect actions to the values your screens display.
Use the registration reference for builder composition, then follow the focused guides below.
Learn More
-
Enable DevTools - Inspect local actions and snapshots
-
Navigation and Lifecycle - Use built-in client features
-
Middleware - Understand dispatch interception
-
Test a Feature and Effect - Inspect state, emitted actions, and cancellation
-
Action Effects - Choose and register an effect contract
-
Add a Reservoir Feature - Define, register, dispatch, and select local state
-
State Flow - Understand reducer, notification, and effect timing
-
Selectors - Compose derived values and use memoization
-
Documentation Home - Return to the product-area docs landing page
-
Reservoir Getting Started - Start with the state-management entry points
-
Reservoir Concepts - Understand the store, reducer, and effect boundary
-
Reservoir Reference - Review the currently verified package and ownership surface
-
Archived Reservoir Docs - Browse the preserved Reservoir material
-
Refraction - See the Blazor UX layer that can sit on top of Reservoir