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.
Event sourcing
Section titled “Event sourcing”These are the core ideas behind Chronicle. The Concepts section explains how they fit together.
| Term | Definition |
|---|---|
| Event | A fact — something that happened, named in the past tense (AccountOpened). Immutable, never nullable, never multipurpose. |
| Event type | The schema and identity of an event — its shape and name. |
| Event source | The thing an event happened to, identified by an id (an account, a book). |
| Event sequence | An ordered, append-only stream of events you can subscribe to. The event log is the primary one — your source of truth. |
| Sequence number | An event’s position within a sequence. |
| Event store | The database that holds event sequences. |
| Event sourcing | Storing state as the full history of events, deriving current state by replaying them. See when to use it. |
| Namespace | A partition of an event store, used for multi-tenancy. |
| Tenant | An isolated set of data for one customer — see namespaces. |
| Identity | Who or what caused an event. |
| Correlation | Links events that belong to the same logical operation. |
| Causation | Links an event to the event that caused it. |
| Tags | Labels on events for filtering and correlation — see also event metadata tags. |
| Aggregate | A consistency boundary that encapsulates behavior and produces events. |
Turning events into state
Section titled “Turning events into state”How events become the things you read and the actions you take.
| Term | Definition |
|---|---|
| Observer | Anything that watches events and acts — a projection, reducer, or reactor. |
| Projection | Builds a read model by mapping events declaratively. |
| Reducer | Builds a read model by folding events imperatively. |
| Reactor | Produces side effects (notifications, calls to other systems) in response to events. |
| Read model | A queryable view shaped for one screen or question, built from events. |
| Changeset | The set of changes an observer applies for a single event. |
| Eventual consistency | A read model that catches up shortly after an event is appended — the default. |
| Immediate consistency | A read model updated synchronously, before the append returns — for reads you must get right now. |
Full-stack: CQRS and the frontend
Section titled “Full-stack: CQRS and the frontend”The terms Arc and Components add on top of Chronicle.
| Term | Definition |
|---|---|
| Command | An intent to change state — a record with a Handle() method that appends events. |
| Query | A read of data, exposed to the frontend as a typed proxy. |
| Observable query | A query that holds a live connection and pushes new results when the data changes. |
| CQRS | Command Query Responsibility Segregation — separating the write side (commands) from the read side (queries). |
| Proxy generation | Arc emitting a typed TypeScript client from your C# commands and queries at build time. |
| Concept | A strongly-typed wrapper around a primitive (AccountId over Guid) so the compiler catches mix-ups. |
| Vertical slice | Everything 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.