---
title: Glossary
description: One definition for each core Chronicle term, so the same word means the same thing everywhere in the docs.
---


Event sourcing comes with its own vocabulary, and the same word can mean subtly different things in different products. This page is the single source of truth for what each term means in Chronicle. Where a term has a fuller treatment, the definition links to it.

## Aggregate

A consistency boundary around a single entity's stream of events — for example one bank account or one order. All decisions for that entity are made against its own events. When you don't need a whole-entity boundary, prefer a [Dynamic Consistency Boundary](/chronicle/dynamic-consistency-boundary/).

## Constraint

A rule Chronicle enforces *as events are appended* — for example "this email address must be unique across all customers." A constraint can reject an append, which is how invariants are protected without reading a separate read model first. See [Constraints](/chronicle/concepts/constraints/).

## Dynamic Consistency Boundary (DCB)

A consistency boundary defined by the *decision being made* rather than by a fixed aggregate. Instead of loading an entire entity, you scope a decision to exactly the events that matter to it. See [Dynamic Consistency Boundary](/chronicle/dynamic-consistency-boundary/).

## Event

An immutable record of something that *happened* — a fact, in the past tense (`OrderPlaced`, `AddressChanged`). Events are never updated or deleted; new facts supersede old ones. An event carries only the data that was true at the moment it occurred. See [Event](/chronicle/concepts/event/).

## Event Log

The default [event sequence](/chronicle/concepts/event-sequence/) in an [event store](/chronicle/concepts/event-store/). When you append without naming a sequence, the event goes to the event log.

## Event Metadata / Tags

Contextual information attached to an event that is not part of the domain fact itself — timestamps, correlation IDs, and user-defined **tags** used to filter or route events. See [Event Metadata Tags](/chronicle/concepts/event-metadata-tags/).

## Event Sequence

An ordered, append-only series of events. The [event log](#event-log) is the default sequence; you can define additional sequences for specialized streams. See [Event Sequence](/chronicle/concepts/event-sequence/).

## Event Source

The thing an event is *about* — the source of the change, such as a specific customer or order. Events that share an event source form that source's stream. See [Event Source](/chronicle/concepts/event-source/).

## Event Source ID

The strongly-typed identifier of an [event source](/chronicle/concepts/event-source/) (for example a `CustomerId`). It is the key Chronicle uses to group and replay an entity's events.

## Event Store

The top-level container for everything in a bounded context: event sequences, observers, projections, and read models. You obtain one from the client and work within it. See [Event Store](/chronicle/concepts/event-store/).

## Event Type

The schema and identity of a kind of event, declared with `[EventType]`. Chronicle validates appended events against their registered type and supports evolving them over time. See [Event Type](/chronicle/concepts/event-type/) and [Event Type Migrations](/chronicle/concepts/event-type-migrations/).

## Namespace

An isolation boundary *within* an event store, most often used for multi-tenancy — each tenant's events live in their own namespace while sharing the same model. See [Namespaces](/chronicle/concepts/namespaces/).

## Observer

The umbrella term for anything that *watches* an event sequence and reacts as events arrive. [Projections](/chronicle/concepts/projection/), [reducers](/chronicle/reducers/), and [reactors](/chronicle/reactors/) are all observers; they differ in what they do with the events. See [Observers](/chronicle/concepts/observers/).

## Projection

An [observer](/chronicle/concepts/observers/) that builds a [read model](/chronicle/read-models/) by mapping and merging events into a document — declaratively, with no hand-written update code. Use a projection when the read side is shaped like data. See [Projection](/chronicle/concepts/projection/).

## Reactor

An [observer](/chronicle/concepts/observers/) that produces *side effects* — sending a notification, calling an external system, or triggering a command. Reactors do things; they do not build state. They must be idempotent because they may run more than once. See [Reactors](/chronicle/reactors/).

## Read Model

A purpose-built, queryable view of state derived from events — the "read" side of CQRS. Read models are specialized per use case rather than shared, so they stay simple and fast. See [Read Models](/chronicle/read-models/).

## Reducer

An [observer](/chronicle/concepts/observers/) that folds events into a value using imperative code you write, for cases a declarative [projection](/chronicle/concepts/projection/) can't express cleanly. See [Reducers](/chronicle/reducers/).

## Replay

Re-running an [observer](/chronicle/concepts/observers/) over historical events to rebuild its [read model](/chronicle/read-models/) from scratch — for example after changing a projection. Because events are the source of truth, read models are always disposable and rebuildable.

## Sink

The destination a [projection](/chronicle/concepts/projection/) writes its [read model](/chronicle/read-models/) to — MongoDB by default, with other stores available through extensions. See [Sinks](/chronicle/sinks/).

## Subject

An observable stream you can subscribe to for real-time updates — the mechanism behind reactive queries that push new data to clients as events arrive. See [Subject](/chronicle/concepts/subject/).

## Tail Sequence Number

The sequence number of the most recent event in an [event sequence](/chronicle/concepts/event-sequence/). `EventSequenceNumber.First` is `0`, so an empty log has no tail and the first appended event sits at `First`.

## Tenant

An isolated consumer of the system whose data must not mix with others'. In Chronicle, tenants are typically separated using [namespaces](/chronicle/concepts/namespaces/).
