Header menu logo FCQRS

Concepts

This section explains the ideas FCQRS is built on, in the order they build on each other. It is the "why," not the "how" — if you want runnable code, the tutorial and the how-to guides are the places for that. Read these pages in order the first time; afterwards each stands on its own.

How FCQRS fits together

The cast of characters

Everything in the diagram above is one of six things, and the whole framework is just these six playing their parts:

The pages

  1. *CQRS and event sourcing* — the two ideas at the foundation, and why storing events instead of current state changes everything downstream.
  2. *Aggregates and the write side* — how an aggregate decides, why it is an actor, and the path a command takes to become a stored event.
  3. *The read side* — projections, offsets, and why a read model can always be thrown away and rebuilt.
  4. *Sagas* — process managers, the handshake that starts one safely, and how they make side effects reliable.
  5. *Consistency and recovery* — correlation ids, read-your-writes, versions, snapshots, and what happens across a restart.
  6. *C# interop and serialization* — using FCQRS from C# with discriminated unions, and how messages are serialized.

Type something to start searching.