Skip to content

Glossary

Event sourcing comes with its own vocabulary, and the Cratis stack adds a few terms of its own. This is the one place each term is defined — one term, one meaning, everywhere. Where a term has a fuller explanation, the name links to it.

These are the core ideas behind Chronicle. The Concepts section explains how they fit together.

TermDefinition
EventA fact — something that happened, named in the past tense (AccountOpened). Immutable, never nullable, never multipurpose.
Event typeThe schema and identity of an event — its shape and name.
Event sourceThe thing an event happened to, identified by an id (an account, a book).
Event sequenceAn ordered, append-only stream of events you can subscribe to. The event log is the primary one — your source of truth.
Sequence numberAn event’s position within a sequence.
Event storeThe database that holds event sequences.
Event sourcingStoring state as the full history of events, deriving current state by replaying them. See when to use it.
NamespaceA partition of an event store, used for multi-tenancy.
TenantAn isolated set of data for one customer — see namespaces.
IdentityWho or what caused an event.
CorrelationLinks events that belong to the same logical operation.
CausationLinks an event to the event that caused it.
TagsLabels on events for filtering and correlation — see also event metadata tags.
AggregateA consistency boundary that encapsulates behavior and produces events.

How events become the things you read and the actions you take.

TermDefinition
ObserverAnything that watches events and acts — a projection, reducer, or reactor.
ProjectionBuilds a read model by mapping events declaratively.
ReducerBuilds a read model by folding events imperatively.
ReactorProduces side effects (notifications, calls to other systems) in response to events.
Read modelA queryable view shaped for one screen or question, built from events.
ChangesetThe set of changes an observer applies for a single event.
Eventual consistencyA read model that catches up shortly after an event is appended — the default.
Immediate consistencyA read model updated synchronously, before the append returns — for reads you must get right now.

The terms Arc and Components add on top of Chronicle.

TermDefinition
CommandAn intent to change state — a record with a Handle() method that appends events.
QueryA read of data, exposed to the frontend as a typed proxy.
Observable queryA query that holds a live connection and pushes new results when the data changes.
CQRSCommand Query Responsibility Segregation — separating the write side (commands) from the read side (queries).
Proxy generationArc emitting a typed TypeScript client from your C# commands and queries at build time.
ConceptA strongly-typed wrapper around a primitive (AccountId over Guid) so the compiler catches mix-ups.
Vertical sliceEverything for one behavior — command, events, projection, UI, specs — kept together in one folder.

New to all this? Start with Why developers choose Cratis, then the Chronicle tutorial.