Skip to main content

Mississippi Documentation

Overview

Mississippi gives teams one coherent model for building stateful, event-driven systems that need durable history, explicit business behavior, real-time visibility, and predictable client state.

You define aggregates, commands, events, reducers, saga steps, and projections. Mississippi then composes event sourcing, CQRS, Orleans execution, generated APIs, real-time delivery, and client-state updates around those types so the whole system follows one architectural shape.

Use this landing page to decide where to start: why Mississippi if you need the business case, concepts if you need the mental model, a product area if you need one capability, or samples if you want to see a complete application.

Start Here

If you want to...Start here
Understand the business value of MississippiWhy Mississippi
Understand what Mississippi is for and how the pieces fit togetherConcepts
Evaluate or adopt a specific subsystemThe product-area sections below
Find package names for independently adoptable areasPackage Entry Points
See a complete working applicationSamples

Why Mississippi Exists

Mississippi is designed for systems where business state changes matter over time, several read models need to stay aligned to the same truth, and users need to see those changes quickly and reliably.

At a high level, it is optimizing for four outcomes:

  • Control over how business state changes
  • Visibility into what happened and what is happening now
  • Resilience for long-lived, stateful, concurrent workflows
  • Consistency across runtime execution, read models, live delivery, and client state

If that is the question you are trying to answer, start with Why Mississippi. If you already accept the business case and need the technical model, continue below.

Architecture At A Glance

This diagram shows the high-level path from domain behavior to live client state.

That high-level flow maps to Mississippi's product areas like this:

  • Event Streams live in Brooks, the event-stream and storage foundation.
  • Reducers & Snapshots live in Tributary, the derived-state reconstruction layer.
  • Domain Behavior lives in Domain Modeling, where aggregates, sagas, effects, and UX projections are expressed.
  • API & Client Sync lives in Inlet, which aligns generated gateway, runtime, and client surfaces.
  • SignalR Backplane lives in Aqueduct, the Orleans-backed real-time transport layer.
  • Client State lives in Reservoir, the Redux-style state-management layer.
  • Blazor UI lives in Refraction, the component and design-token layer.

For the detailed subsystem map and concepts reading path, use Concepts.

Choose Your Path

Use the path that matches your immediate goal.

QuestionStart here
Why would a team or organization choose Mississippi?Why Mississippi
How do the main architecture layers fit together?Concepts
How do commands, events, reducers, and effects work?Write Model
How do projections reach HTTP and client state?Read Models and Client Sync
How are long-running workflows modeled?Sagas and Orchestration
What is Mississippi optimizing for, and what does it cost?Design Goals and Trade-Offs

Independent Foundations

These areas can be adopted on their own without requiring the full Mississippi stack.

AreaWhat it covers
SignalR BackplaneAqueduct provides Orleans-backed SignalR backplane support for distributed real-time messaging
Blazor UIRefraction provides Blazor UI components built around a state-down, events-up interaction model
Client StateReservoir provides Redux-style client state management
Event StreamsBrooks provides event streams and event storage

Package Entry Points

These independent areas also expose package entry points that can be adopted without taking the full Mississippi stack.

The package IDs below come from the packable projects under src/ and use the repository-wide Mississippi. package prefix.

AreaRepresentative packagesNotes
SignalR BackplaneMississippi.Aqueduct.Abstractions, Mississippi.Aqueduct.Gateway, Mississippi.Aqueduct.RuntimeAqueduct contracts plus gateway and Orleans runtime integrations for the backplane
Blazor UIMississippi.Refraction.Abstractions, Mississippi.Refraction.Client, Mississippi.Refraction.Client.StateManagementRefraction UI contracts, runtime components, and page-composition helpers
Client StateMississippi.Reservoir.Abstractions, Mississippi.Reservoir.Core, Mississippi.Reservoir.Client, Mississippi.Reservoir.TestHarnessReservoir state-management contracts, runtime, Blazor integration, and testing support
Event StreamsMississippi.Brooks.Abstractions, Mississippi.Brooks.Runtime, Mississippi.Brooks.Serialization.Abstractions, Mississippi.Brooks.Serialization.JsonBrooks event-streaming contracts, runtime, and serialization seams

Use the area pages above when you want the architectural view. Use the package names in this table when you are deciding what to reference from an application or library.

Core Architecture Areas

These areas form the end-to-end Mississippi application model.

AreaWhat it covers
Domain BehaviorDomain Modeling covers aggregates, sagas, effects, and projections
Reducers & SnapshotsTributary covers reducers and snapshots
Event StreamsBrooks covers event streams, cursor tracking, and storage contracts
API & Client SyncInlet covers source-generated alignment across client, HTTP, and runtime layers
SignalR BackplaneAqueduct covers Orleans-backed SignalR transport and connection infrastructure
Client StateReservoir covers Redux-style client state management
Blazor UIRefraction covers the Blazor component library and design tokens

Samples

This section covers complete applications that show how multiple Mississippi areas compose in practice.

AreaWhat it covers
SamplesEnd-to-end sample applications, guided walkthroughs, and sample-specific validation paths

Current Coverage

This documentation set currently provides:

  • a business-oriented explanation of why the framework exists
  • a concepts path covering architecture, writes, reads, sagas, and design trade-offs
  • product-area entry pages for the main Mississippi subsystems
  • sample documentation showing how the pieces compose in complete applications

Earlier material is still preserved for reference, but the active top-level sections above are the right place to start for new reading.

Legacy Material

Earlier documentation is still available under Archived Documentation.

Use that material when you need preserved reference pages from the older docs set, but prefer the active top-level sections for new navigation.

Learn More