Skip to main content

Glossary

This glossary defines key terms used throughout the Angzarr documentation, organized by category.

Component Types

TermAbbrDescription
AggregateaggDomain logic. Commands in, events out. Single domain source of truth.
SagasagDomain bridge. Events from one domain, commands to another. Stateless.
ProjectorprjRead model builder. Events in, external output.
Process ManagerpmgMulti-domain orchestrator. Stateful correlation via correlation ID.
Coordinator-Angzarr sidecar handling infrastructure concerns.

DDD & Angzarr Mapping

Important Distinction

Angzarr "domain" ≠ DDD "bounded context". Multiple Angzarr domains may exist within one bounded context.

TermDescription
DomainAngzarr: aggregate namespace and deployment unit. One domain = one aggregate type.
Bounded ContextDDD: semantic/team boundary. Not directly modeled by Angzarr. May contain multiple domains.
Aggregate RootEntry point entity. All external references go through the root.

Commands, Events & Notifications

Understanding the differences is critical:

TermTensePersistedCan RejectExample
CommandImperativeNoYesCreateOrder
EventPastYesNoOrderCreated
NotificationPresentNoN/ACompensationRequired

Event Sourcing

TermDescription
Event SourcingState derived by replaying events, not stored directly.
Event StoreAppend-only database of events. Source of truth.
ReplayReconstruct state by applying events from beginning.
SnapshotCached state checkpoint to optimize replay.
Sequence NumberOrdered position of event in aggregate timeline.
UpcastingTransform old event versions at read time.

CQRS

TermDescription
CQRSCommand Query Responsibility Segregation.
ProjectionQuery-optimized read model built from events.

Angzarr Data Structures

TermDescription
EventBookCollection of events for an aggregate root.
EventPageIndividual event with sequence and timestamp.
CommandBookCollection of commands with concurrency metadata.
CoverIdentity/routing: domain, root, correlation, edition.
TargetSubscription filter: domain + event types.

Concurrency & Consistency

TermDescription
Merge StrategyHow to handle concurrent command conflicts.
Correlation IDIdentifier for cross-domain workflows.
EditionTimeline branching for speculative execution.

Patterns & Architecture

TermDescription
OrchestrationCentral coordinator controls workflow vs choreography.
CompensationHandling failures by emitting undo events.
SidecarContainer pattern for infrastructure concerns.
CloudEventStandardized event envelope for external systems.

Error Handling

TermDescription
Dead Letter QueueDestination for unprocessable messages.

Terminology Comparison: DDD vs CQRS/ES vs Angzarr

The table below maps terminology across Domain-Driven Design, CQRS/Event Sourcing literature, and Angzarr. Understanding these mappings helps when reading DDD books, CQRS articles, or Angzarr docs.

Core Concepts

ConceptDDD (Evans)CQRS/ESAngzarrKey Differences
Problem spaceDomain--DDD's "domain" is the business problem, not a code construct
Problem partitionSubdomain (core/supporting/generic)--Business capability analysis; no direct Angzarr equivalent
Semantic boundaryBounded Context-(not modeled)Angzarr doesn't model bounded contexts; they're organizational
Aggregate namespace(within BC)-DomainAngzarr domain = one aggregate type; multiple domains may share a BC
Consistency unitAggregateAggregateAggregateAll three: cluster of objects, single transaction, invariant enforcement
Entry pointAggregate RootAggregate RootRoot (in Cover)Angzarr uses UUID; DDD allows domain-specific IDs
Request to change-CommandCommandImperative, can be rejected
Record of changeDomain EventEventEventPast tense, immutable, persisted
Cross-domain translationAnti-Corruption LayerSagaSagaAngzarr saga = ACL when crossing BC boundaries; internal coordination otherwise
Stateful workflow-Saga / Process ManagerProcess ManagerAngzarr distinguishes: PM has state, correlation ID as root
Read model-Projection / Read ModelProjectionQuery-optimized view built from events
Read model builder-Projector / DenormalizerProjectorAngzarr: events in, external output

Event Sourcing Specifics

ConceptCQRS/ES LiteratureAngzarrKey Differences
Event positionVersion / Sequence NumberSequenceSame concept, Angzarr also uses for idempotency
Event persistenceEvent StoreEvent StoreAppend-only, immutable
State reconstructionReplay / RehydrationReplayDerive state by applying events
Performance optimizationSnapshotSnapshotCached state checkpoint
Schema evolutionUpcasting / VersioningUpcastingTransform old events at read time
Event envelope-CoverAngzarr-specific: domain, root, correlation, edition
Event collectionEvent StreamEventBookAngzarr: all events for one aggregate root
Individual eventEventEventPageAngzarr: event + metadata (sequence, timestamp)

Angzarr-Specific Concepts

Angzarr TermClosest EquivalentDescription
Domain(none—see note)Aggregate namespace and deployment unit; one domain = one aggregate type
Cover-Identity envelope: domain + root + correlation + edition
Edition-Timeline branching for speculative execution
FactEventEvent without preceding command; receiving domain assigns sequence; retains source traceability
Notification-Transient coordination message (not persisted)
Coordinator-Sidecar handling infrastructure (routing, storage, bus)
Target-Subscription filter: domain + event types
CommandBook-Command collection with concurrency metadata
Domain ≠ Bounded Context

Angzarr "domain" is not equivalent to DDD "bounded context." A bounded context may contain multiple Angzarr domains. See Domain and Bounded Context for details.

Where Terminology Diverges

SituationDDD SaysCQRS/ES SaysAngzarr Does
Saga outputN/AEvents (typically)Facts (preferred; receiving domain assigns sequence) or Commands (with compensation)
Cross-context callsAvoid synchronousAvoid synchronousSupported but discouraged; indicates boundary debt
Aggregate size"Just big enough"Small, enforce one invariantDecision-containing; can be larger if cohesive
Domain eventsStay in contextMay cross contextsIntegration events cross; domain events are internal
CorrelationN/ACorrelation IDCorrelation ID + PM uses it as aggregate root

Translation Guide

When reading DDD literature:

  • "Domain" → the overall problem space (no Angzarr equivalent)
  • "Subdomain" → business capability; may map to one or more Angzarr domains
  • "Bounded Context" → organizational/team boundary; may contain multiple Angzarr domains; not directly modeled
  • "Anti-Corruption Layer" → saga that crosses bounded context boundaries (vs. internal coordination saga)

When reading CQRS/ES articles:

  • "Saga" → could be Angzarr Saga (stateless) or Process Manager (stateful)—check if it has state
  • "Projection" → Angzarr Projection (the data) built by a Projector (the component)
  • "Event Stream" → Angzarr EventBook

When reading Angzarr docs:

  • "Domain" → aggregate namespace/deployment unit; NOT equivalent to DDD bounded context
  • "Saga" → may be internal coordination (within BC) or ACL (crossing BC)—depends on organizational boundaries
  • "Fact" → event without preceding command; receiving domain assigns sequence; retains source traceability
  • "Edition" → unique to Angzarr, enables speculative execution