A

Adapter
Implementation of a port. Connects the application layer to external systems (databases, HTTP, etc.). Lives in the adapters/ directory.
Actor
The user or system performing an action. Identified by actor_id in envelopes and activity logs.
Allow
A hook response that permits the operation to continue. The default if a hook returns nothing.

C

Catalogue
The component registry. Lists all components, their schemas, ports, and events. Browsable at /v1/catalogue.
Clock
A platform primitive for time abstraction. Use clock.now() instead of datetime.now().
Component
An isolated domain module (e.g., Todos, Budget). Has its own domain, application, and adapters layers. Cannot import other components.
Correlation ID
A UUID that traces a request through the system. Carried in envelopes and logs.

D

Domain
The innermost layer. Contains entities, value objects, and domain events. Has no framework dependencies.
Domain Event
An immutable record of something that happened. Published via EventBus after state changes. See Events.

E

Entity
A mutable domain object with identity. Has an id and owner_id. Examples: Task, Note, BudgetPlan.
Envelope
A wrapper that adds metadata (id, timestamp, actor_id, correlation_id) to commands, queries, or events.
Event
See Domain Event.
EventBus
A platform primitive for publish-subscribe messaging. Handles async event delivery.
Eventual Consistency
The guarantee that event subscribers will eventually process events, but not necessarily immediately.

F

Facet
A typed extension point for preferences and settings. Attached to a Person or Group by FacetKey. See Facets.
Fact
An immutable record of something that happened. Events and audit logs are facts. See Record Types.
FixedClock
A test double that returns a fixed time. Essential for testing time-dependent logic.

G

Group
A collection of people who share data. Part of the Identity kernel. Referenced by owner_id.

H

Hook
A synchronous interception point. Allows other components to veto, patch, or observe operations. See Hooks.
HookDispatcher
A platform primitive that manages hook registration and invocation.

I

Identity Kernel
The central module containing Person and Group entities. All components reference it via owner_id.
Idempotency
The property that processing something multiple times has the same effect as processing it once. Required for event subscribers.
IdempotencyStore
A platform primitive for tracking processed events to prevent duplicates.

M

Module
A class that registers a component with the runtime. Provides routers, capabilities, hooks, and event subscribers.

O

owner_id
A UUID on every entity pointing to either a Person or Group. The fundamental scoping mechanism for multi-tenancy.

P

Patch
A hook response that modifies input data before processing. Multiple patches are merged.
Person
An individual user. Part of the Identity kernel. Has authentication credentials and owns private data.
Policy
A platform primitive for authorization. Checks if an actor can perform an action on a resource.
Port
An interface (Protocol) that the application layer depends on. Implemented by adapters. Example: TaskRepository.
Primitive
A platform-level building block (Clock, EventBus, Policy, etc.). Components inject them as dependencies.
Projection
A local copy of data from another component, built by subscribing to events. Trades storage for independence.

Q

QuerySpec
A platform primitive for standardized filtering, sorting, and pagination across repositories.

R

Repository
A port for persisting and retrieving entities. Implemented by adapters (InMemory, Postgres, etc.).

U

Use Case
A class in the application layer that orchestrates a business operation. Has injected dependencies (ports, primitives).

V

Veto
A hook response that blocks an operation. Any veto stops the operation and provides a reason.