---
title: Glossary
description: One precise line per Arc.Kotlin term, cross-referenced to the guide or reference page that covers it in full.
---


## Commands and queries

- **Command** — a class or record annotated `@Command` expressing an imperative intent; its public
  `handle` method produces a response, appends events, or both. See [Create and validate commands](/arc/backend/kotlin/guides/commands/).
- **Handle** — the public instance method KSP requires on a `@Command`. May be synchronous,
  `suspend`, or return a Java `CompletionStage`.
- **Provide** — the optional method that runs after validation and authorization, before `handle`,
  to fetch or compute data `handle` needs. See [Prepare handler values](/arc/backend/kotlin/guides/commands/#prepare-handler-values).
- **Command key (`@CommandKey`)** — the property that identifies the command's subject; required for
  a command to return a plain Chronicle event. See [Return an event](/arc/backend/kotlin/guides/chronicle/#return-an-event).
- **Read model** — a class or record annotated `@ReadModel` whose static or companion methods are
  queries. See [Expose one-shot and observable queries](/arc/backend/kotlin/guides/queries/).
- **Query** — a static (Java) or `@JvmStatic` companion (Kotlin) method on a `@ReadModel`. One-shot
  queries return a value; observable queries return `Flow<T>` or `Flow.Publisher<T>`.
- **Observable query** — a query whose return type is `Flow<T>`/`Flow<List<T>>` or
  `Flow.Publisher<T>`/`Publisher<List<T>>` (or, with the optional `arc-rxjava3` artifact, an RxJava 3
  type). Arc hosts it as an HTTP snapshot, direct SSE, direct WebSocket, or a multiplexed hub. See
  [Declare observable queries](/arc/backend/kotlin/guides/observable-queries/).
- **`@FromServices`** — marks a query parameter as a dependency resolved from Spring, distinguishing
  it from an unannotated caller argument.

## Generated artifacts

- **KSP** — [Kotlin Symbol Processing](https://kotlinlang.org/docs/ksp-overview.html), the compiler
  plugin that reads `@Command`/`@ReadModel` declarations and generates handlers, performers, and the
  artifact manifest at compile time. Arc's processor is `io.cratis:arc-ksp`. See
  [Configuration reference](/arc/backend/kotlin/reference/configuration/) for the application-facing surface.
- **Artifact manifest** — the language-neutral JSON document (`META-INF/cratis/arc/*.json`) KSP emits
  per module, consumed by the TypeScript proxy generator. See
  [Configuration reference](/arc/backend/kotlin/reference/configuration/).
- **Proxy** — the generated TypeScript client for a command, query, model, interface, or enum,
  carrying a `// @generated by Cratis` header. See
  [Generate TypeScript proxies](/arc/backend/kotlin/guides/typescript-proxies/).
- **`ARCKSP` diagnostic** — a stable compile-time error or warning code KSP reports, for example
  `ARCKSP0101` (unsupported command declaration). Cataloged in
  [KSP diagnostics](/arc/backend/kotlin/reference/diagnostics/).
- **Concept (`ConceptAs<T>`)** — a Kotlin class or Java record implementing `ConceptAs<T>` that wraps
  a single scalar value. Serializes as its underlying value, not as a wrapper object, across
  commands, queries, models, validation, TypeScript, OpenAPI, and Chronicle command keys.

## Validation

- **`ConceptValidator<TConcept>`** — a reusable, server-only rule applied everywhere a specific
  concept type appears in a command or query graph. See
  [Add validation](/arc/backend/kotlin/guides/commands/#add-validation).
- **`ModelValidator<T>`** — a server-only rule for one exact runtime model class, applied to command
  roots, nested models, and supplied query arguments. See
  [Reuse model validation](/arc/backend/kotlin/guides/commands/#reuse-model-validation).
- **`FluentModelValidator<T>`** — a bounded, literal-rule validator whose rules are also emitted into
  the generated TypeScript client, so the same constraint runs in the browser and on the server. See
  [Share fluent validation](/arc/backend/kotlin/guides/validation/).
- **`@IgnoreValidation`** — cuts one member's validation edge before access while leaving
  serialization and binding unchanged. See
  [Ignore a validation member edge](/arc/backend/kotlin/reference/validation/#ignore-a-validation-member-edge).

## Identity, tenancy, and transport

- **`AuthenticationHandler`** — an ordered Kotlin or Java (`AsyncAuthenticationHandler`) bean that
  inspects a request and returns an authenticated, failed, or anonymous result. See
  [Register a Kotlin authentication handler](/arc/backend/kotlin/guides/security/#register-a-kotlin-authentication-handler).
- **`TenantIdResolver`** — resolves the current request's tenant from a header, query parameter,
  claim, subdomain, or fixed/development value. See [Configuration reference](/arc/backend/kotlin/reference/configuration/).
- **`CommandResult` / `QueryResult`** — the JSON envelopes every command and query response uses. See
  the [HTTP contract reference](/arc/backend/kotlin/reference/http-contract/).
- **Correlation ID** — the `X-Correlation-ID` value the Spring Boot starter establishes once per
  request, for every route in the host, Arc-owned or not. See
  [Correlation](/arc/backend/kotlin/reference/http-contract/#correlation).

## Chronicle (optional integration)

- **Chronicle** — [Cratis's event-sourcing database and runtime](https://github.com/Cratis/Chronicle),
  consumed here through [Chronicle.Kotlin](https://github.com/Cratis/Chronicle.Kotlin). Optional: `io.cratis:arc`
  has no dependency on it. See [Integrate commands and read models with Chronicle](/arc/backend/kotlin/guides/chronicle/).
- **Event** — an immutable Chronicle `@EventType` fact returned from a command's `handle` and
  appended to an event stream.
- **Reactor** — a Chronicle artifact that observes events; `ChronicleCommandSideEffectHandler` lets
  one hand registered Arc command values to the real command pipeline as a side effect. See
  [Execute reactor command side effects](/arc/backend/kotlin/guides/chronicle/#execute-reactor-command-side-effects).
- **`EventsWithConcurrencyScopes`** — a typed command response that attaches exact per-event-source
  Chronicle concurrency scopes to a batch of routed events. See
  [Attach exact concurrency scopes](/arc/backend/kotlin/guides/chronicle/#attach-exact-concurrency-scopes).

## Where to go next

- [Feature parity reference](/arc/backend/kotlin/reference/parity/) — the evidence-backed status of every one of these terms in
  the current JVM implementation.
- [Annotation reference](/arc/backend/kotlin/reference/annotations/) — the exact contract of every annotation named above.
