Skip to content

Glossary

  • 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.
  • 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.
  • 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.
  • Read model — a class or record annotated @ReadModel whose static or companion methods are queries. See Expose one-shot and observable 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.
  • @FromServices — marks a query parameter as a dependency resolved from Spring, distinguishing it from an unannotated caller argument.
  • KSPKotlin Symbol Processing, 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 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.
  • Proxy — the generated TypeScript client for a command, query, model, interface, or enum, carrying a // @generated by Cratis header. See Generate TypeScript proxies.
  • ARCKSP diagnostic — a stable compile-time error or warning code KSP reports, for example ARCKSP0101 (unsupported command declaration). Cataloged in KSP 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.
  • ConceptValidator<TConcept> — a reusable, server-only rule applied everywhere a specific concept type appears in a command or query graph. See 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.
  • 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.
  • @IgnoreValidation — cuts one member’s validation edge before access while leaving serialization and binding unchanged. See Ignore a validation member edge.
  • 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.
  • TenantIdResolver — resolves the current request’s tenant from a header, query parameter, claim, subdomain, or fixed/development value. See Configuration reference.
  • CommandResult / QueryResult — the JSON envelopes every command and query response uses. See the HTTP contract reference.
  • 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.