Functional CQRS with .NET

reverseblade22 pts0 comments

Learning path | FCQRS

Links

License

Release<br>Notes

Source<br>Repository

Overview

Overview

Learn FCQRS

0. Quickstart

1. The aggregate

2. Wiring and running it

3. Adding a saga

4. Testing and evolution

5. Preparing for production

Understand

CQRS and event sourcing

Aggregates and the write side

The read side

Correlation IDs and read-your-writes

Sagas

Deferring, snapshots, and passivation

Consistency and recovery

C# interop and serialization

Apply

Define an aggregate

Add a projection

Read your writes

Write a saga

Test your domain

Evolve persisted events

Rebuild a read model

Dispatch a best-effort async effect

Configure the database

Observe your system

Use FCQRS from C#

Reference

Configuration

API Reference

All Namespaces

Learn FCQRS: one path from zero to production

This is the beginner path. Stay inside these numbered pages on the first pass. Each stage introduces<br>the vocabulary and reasoning it needs, builds on the previous stage, and ends with one clear next<br>step. You do not need to open a concept page or how-to guide to complete the course.

The course builds one document application. Documents can be created and edited. Publishing requires<br>a unique URL slug, so the application eventually adds a second aggregate and a resumable saga. The<br>domain is intentionally small so state, events, projection progress, retries, and recovery remain<br>visible.

0. See one complete request<br>1. Model one decision<br>2. Persist, project, and query<br>3. Coordinate two owners<br>4. Prove replay and compatibility<br>5. Prepare the system for failure

Follow the stages in order

Stage

Question answered

What you build

0. Quickstart

What does one FCQRS request do end to end?

One command, stored event, projection, and query

1. The aggregate

Where does a business decision live?

Validated values, command, event, decide, and fold

2. Wiring and running it

How does durable state become query data?

SQLite journal, actor runtime, projection, and read-your-writes

3. Adding a saga

How do independent owners coordinate safely?

Slug aggregate and resumable publication workflow

4. Testing and evolution

How can this system change without breaking history?

Decision, replay, retry, and compatibility tests

5. Preparing for production

What must survive or become visible in production?

Storage, recovery, diagnostics, backup, and deployment checklist

Start at stage 0 even if you know CQRS. It gives the names used throughout the rest of the course. If<br>you already ran one of the repository samples, stage 0 will be a short review.

What you need

The .NET 10 SDK . dotnet --version should print 10.*.

A scratch project for the executable course:

dotnet new console -lang F# -n DocStore<br>cd DocStore<br>dotnet add package FCQRS

dotnet new console -n DocStore<br>cd DocStore<br>dotnet add package FCQRS

Run the project at any point with dotnet run. Chapter 2 creates tutorial.db, which contains the<br>event journal and snapshots. Delete tutorial.db* only when you intentionally want to discard that<br>history and begin again.

Every teaching block has an adjacent F# and C# tab. The executable F# is checked during the docs build.<br>The fuller C# examples use preview discriminated unions; the stable .NET 10<br>C# sample uses ordinary<br>concrete message types. The course explains the architectural model identically in both languages.

Use the other sections after the course introduces a topic

Understand explains guarantees and failure boundaries in greater depth. These pages are optional<br>during the first pass.

Apply contains short task recipes for work in your own application. Use it after the matching<br>course stage.

Reference lists configuration keys and API details. Consult it when choosing exact options.

This separation is deliberate: the learning path teaches in dependency order; the other sections help<br>you deepen or reuse something you have already encountered.

Continue to 0. Quickstart.

On this page

Learn FCQRS: one path from zero to production

Follow the stages in order

What you need

Use the other sections after the course introduces a topic

Type something to start searching.

fcqrs course stage dotnet path aggregate

Related Articles