Skip to content

Glossary

Shared language across all bounded contexts, the platform team, and product stakeholders. When a term appears in an ADR, domain model, or event schema, it means exactly what is defined here — not what a reader assumes from general industry usage.


Business Terms

Order — A customer's intent to purchase one or more products. An Order has a lifecycle (Pending → Confirmed → Cancelled) and is the root aggregate of the Orders bounded context. An Order is not the same as a fulfillment; it ends when payment is captured and an OrderConfirmed event is published.

Reservation — A temporary hold on stock quantity for a specific Order. A Reservation prevents another Order from claiming the same stock. Reservations expire if the Order is not confirmed within the reservation TTL (default: 15 minutes).

Stock Level — The quantity of a SKU available for new reservations. Equals on-hand quantity minus active reservation quantity. The authoritative stock level lives in the Inventory write model; the Redis projection is eventually consistent.

Customer — A registered entity that places Orders. A Customer is not a user session; authentication identities are separate from the Customer aggregate. A Customer may have multiple addresses and may be suspended.

Suspension — A Customer account state that prevents new Order placement. Suspension is triggered by risk systems or operators. It does not cancel existing open Orders.

SKU — Stock Keeping Unit. The atomic unit of inventory. An Order contains one or more Order Items, each referencing a SKU.

Error Budget — The inverse of an SLA availability target, expressed as allowable downtime or failure volume over a rolling window. Example: 99.95% availability over 30 days = 21.6 minutes of allowed downtime. Error budgets are tracked in real time via burn rate alerts.


Technical Terms

Aggregate — A cluster of domain objects (entities + value objects) treated as a single unit for data changes. All mutations go through the aggregate root. No external object holds a reference to a non-root member of the aggregate.

Domain Event — An immutable record that something significant happened in the domain. Named in the past tense (OrderPlaced, StockReserved). The canonical schema lives in contracts/event-schemas/. Events are the integration currency between bounded contexts.

Command — A request to change state. Commands can be rejected (business rule violation). A successful command produces one or more domain events. Commands are named in the imperative (PlaceOrder, ReserveStock).

Saga — A sequence of local transactions coordinated across multiple services. Each step can succeed or fail. On failure, compensation steps run in reverse order. The Orders service orchestrates the place-order saga; Inventory and Payment participate.

Bounded Context — A semantic boundary within which a model is consistent and the ubiquitous language applies. A term that means one thing inside one context may mean something different inside another. Integration across context boundaries goes through published events or versioned APIs.

Strangler Fig — A migration pattern where a new system grows around the old system, routing traffic away from it gradually, until the old system can be decommissioned. Named after the strangler fig tree that grows around a host.

SLO (Service Level Objective) — A measurable target derived from an SLA, expressed as a PromQL query and a time window. SLOs are in observability/slos/. They are the operational expression of the commitments in contracts/slas/.

SLA (Service Level Agreement) — The business commitment to a specific level of service, negotiated with stakeholders. SLAs are in contracts/slas/. They are human-readable and business-facing.

Burn Rate — The rate at which error budget is consumed relative to the budget allocation rate. A burn rate of 1.0 means budget is consumed at exactly the rate it is allocated; at 14.4x, the monthly budget will be exhausted in 2 days. Burn rate alerts are the primary on-call signal.

CQRS (Command Query Responsibility Segregation) — A pattern where the write model (handling commands) and read model (handling queries) are separate stores, updated asynchronously. Used in Inventory: writes to PostgreSQL; reads from a Redis projection.

Event Sourcing — A persistence pattern where state is derived by replaying a log of domain events, rather than storing the current state directly. Used in Orders: the EventStoreDB stream for an order is the system of record; the current state is a projection.

IRSA (IAM Roles for Service Accounts) — An AWS mechanism that assigns an IAM role to a Kubernetes service account via OIDC federation. Each service has one IRSA-bound IAM role with the minimum permissions needed.

OTLP (OpenTelemetry Protocol) — The wire protocol for emitting telemetry signals (traces, metrics, logs) from services to the OTEL Collector.

Outbox Pattern — A reliability pattern for event publishing. Instead of publishing directly to Kafka, the service writes the event to a local outbox table within the same database transaction as the domain state change. A separate process reliably reads the outbox and publishes to Kafka, guaranteeing at-least-once delivery.


Context-Specific Overloads

The following terms have different meanings in different bounded contexts. Always qualify with context when ambiguous.

Term In Orders context In Inventory context
Quantity Number of units on an order line Available-for-reservation count for a SKU
Status OrderStatus enum (Pending, Confirmed, Cancelled) Not a first-class term; use stock level + reservation count
Cancel Terminate an Order before confirmation Release a reservation