Connectors
Connectors are how kyma pulls from sources that don't push to it. The trait is small, the registry is one map, and the runner is the same group-commit loop the OTLP and Kafka frontends use — so a connector's output lands on the same staging buffer, through the same snapshot CAS, into the same kyma extents.
One framework. One reference engine in tree. Three operational-database engines on the way, each shipping in its own milestone.
Framework
The Connector trait, the registry, the periodic scheduler, the admin REST API at POST /v1/connectors, and the secret-by-reference resolver. Generic to every connector type — read this once and the five pages below are mostly config.
Prometheus
The reference implementation. Scrapes /metrics on a schedule, parses OpenMetrics, lands one row per sample in the configured table. Shipped today; the smallest possible thing that proves the framework.
Postgres 🚧
Federation for live reads, replication-slot CDC for sync, both at once. Pushdown of filters, projection, LIMIT, single-source aggregation. Lands in DB-M1.
MySQL 🚧
Same shape as Postgres. Binlog row events with GTID checkpoints for CDC; collation-safety rules in the planner so case-insensitive columns never silently corrupt federated equality. Lands in DB-M2.
MongoDB 🚧
Change streams with startAtOperationTime for CDC. BSON type coercion, nested-document flattening up to a configurable depth, polymorphic-field demotion to dynamic. Lands in DB-M3.
Multi-source data 🚧
The marquee surface — live(...) for federated reads, the pushdown_summary on every federated response, kyma_connector_health as a queryable kyma table. Cross-references the conceptual model at Multi-source data.
What's the same across all connector types
- One trait. Implement
Connector::run_once; the framework owns scheduling, retry classification, secret resolution, and the row sink. - One registry. Connector types register at startup; the admin API validates
typeagainst it before persisting any row. - One write path. Rows produced by a tick go through the same JSON-to-Arrow coercion, the same staging buffer, and the same snapshot CAS as REST/NDJSON ingest. See Extents and snapshots.
- One health surface. Per-tick metrics,
last_error,last_rows_ingestedon the connector row, plus thekyma_connector_healthview (DB-M0+) for the database engines. See Observability.