Skip to content

Concepts cheatsheet

A one-screen reference. For the longer-form mental model see Concepts; for the living architecture spec see Architecture.

The five invariants

Encoded as architectural tests in benches/distribution/. Regressions block merge.

  1. Object storage is the only source of truth. Local disk is cache, never master.
  2. Query nodes are stateless. A node's state is its config + its cache.
  3. Catalog is externalized from byte one. No embedded-catalog code path.
  4. Format is pluggable. SegmentFormat is the trait boundary.
  5. Parser is pluggable. QueryFrontend is the trait boundary.

Violating any of them turns distribution from a deployment change into a rewrite.

Data shape

  • Address: database.table.column
  • Default database: default
  • System columns — present only on tables synced from external sources via the connector framework. Internal kyma tables don't have these.
    • _kyma_pk — concatenated source primary key
    • _kyma_op'insert' | 'update' | 'delete'
    • _kyma_lsn — engine-specific cursor at commit time
    • _kyma_event_at — wall-clock time the source emitted the event

Default endpoints

PathMethodContent-TypeAuthPurpose
/healthGETnoneLiveness probe.
/metricsGETtext/plain (Prometheus)nonePrometheus scrape endpoint.
/v1/queryPOSTapplication/sql, application/x-kql, application/x-promqlRole::ReadRun a SQL / KQL / PromQL query. NDJSON response.
/v1/ingestPOSTapplication/x-ndjsonRole::WriteIngest rows. X-Database, X-Table headers required.
/v1/catalog/schemaGETRole::ReadList databases, tables, columns, types.
/v1/agent/askPOSTapplication/jsonRole::ReadRun one agent turn. Streams SSE.
/v1/agent/runs/{id}GETRole::ReadLook up a persisted agent run by id.
Arrow Flight gRPCFlight protocolRole::ReadStreaming Arrow results over gRPC on :9090.

PromQL is on the roadmap — the content-type is reserved; the frontend lands in a later milestone.

Default ports

PortService
8080HTTP — query, ingest, agent, health, metrics.
9090Arrow Flight gRPC.
4317OTLP gRPC (off by default — set KYMA_OTLP_ADDR to enable).
5433Postgres catalog (host port; container port is 5432).
9000MinIO S3 API.
9001MinIO console UI.
9092Redpanda Kafka wire protocol.

Key env vars

Pulled from kyma-bin/src/main.rs and the storage / auth modules.

NameDefaultPurpose
KYMA_CATALOG_URLpostgres://kyma:kyma_dev@localhost:5433/kymaPostgres catalog connection string.
KYMA_HTTP_ADDR0.0.0.0:8080HTTP listen address.
KYMA_GRPC_ADDR0.0.0.0:9090Arrow Flight listen address. Set to off to disable.
KYMA_OTLP_ADDRoffOTLP gRPC listen address (typically 0.0.0.0:4317). off disables it.
KYMA_OTLP_DATABASEdefaultDatabase OTLP-received logs land in.
KYMA_AUTH_TOKENS(empty — auth disabled)Comma-separated token:role pairs. Roles: admin, write, read.
KYMA_PATH_PREFIXkymaObject-store key prefix for all extents.
KYMA_S3_ENDPOINT(unset — uses AWS default)S3 endpoint. Set to http://minio:9000 for local MinIO.
KYMA_S3_BUCKETkymaBucket holding extents.
KYMA_S3_REGIONus-east-1S3 region.
KYMA_S3_ACCESS_KEY_ID(unset)S3 access key.
KYMA_S3_SECRET_ACCESS_KEY(unset)S3 secret key.
KYMA_S3_PATH_STYLEtruePath-style addressing (required for MinIO).
KYMA_S3_ALLOW_HTTPfalsePermit non-TLS S3. true for local MinIO.

For the full list — including compaction, retention, GC, file-drop, Kafka, and connector-worker tunables — see Reference.