Skip to content

Capability catalogue

The complete shipped feature surface, one area per section, each row linking to the page that documents it in depth. A capability appears here only when it is backed by code and tests in the repository; config-gated or partial features carry their caveat in the row. The README status tables remain the fine-grained per-subsystem inventory; this page is the navigable map.

Execution model

Capability Notes Reference
Typed operator DAGs Map, filter, reduce, keyed process, branching (fork), union with barrier alignment Operator model
Fluent API Pipeline / DataStream<T> / KeyedDataStream<T> builder chain Operator model
Operator parallelism Per-subtask keyed-state isolation, hash-partitioned shuffle Jobs and scheduling
Backpressure Bounded channels end to end, in-band flow control Task lifecycle
Columnar execution Operators opt in via process_columnar(); Arrow sidecar batches flow through shuffles without row materialisation Columnar execution
Async state execution Off-thread state reads with deadline-based resume and read coalescing for deferring backends Async state execution

Time, windows, CEP

Capability Notes Reference
Event time and watermarks Assigner strategies: monotonic, bounded out-of-orderness Time and windowing
Windows Tumbling, sliding, session; custom triggers (tumbling/sliding), allowed_lateness, late output tags. No evictors Time and windowing
Interval join Keyed stream-stream join, all 8 join types, watermark-driven eviction, late-arrival policy Time and windowing
Complex event processing NFA-based Pattern DSL: linear patterns, greedy quantifiers, strict/relaxed contiguity; reachable from SQL MATCH_RECOGNIZE Time and windowing

SQL

Built behind CLINK_BUILD_SQL=ON (default off). One SQL file runs embedded or submits to a cluster, unchanged.

Capability Notes Reference
DDL and catalog CREATE TABLE ... WITH (connector=...), session or directory-persisted catalog, SHOW/DROP, EXPLAIN with row estimates, ANALYZE TABLE statistics SQL frontend
Queries Projection and filtering with three-valued null semantics, expressions, aggregates, GROUP BY (including windowed), HAVING, ORDER BY / LIMIT, subqueries, DISTINCT, top-N SQL frontend
Joins Stream-stream interval joins, multi-way INNER joins with cost-based reordering (applied only when estimated cheaper), lookup joins SQL frontend
Types BIGINT/DOUBLE/VARCHAR/BOOLEAN/timestamps, DECIMAL (exact, 128-bit), ARRAY/MAP/ROW, MULTISET SQL frontend
Pattern matching MATCH_RECOGNIZE v1 on the CEP engine SQL frontend
Extensibility Scalar UDFs (LANGUAGE SQL and native), UDAFs, the Table API producing the same JobGraphSpec SQL frontend
SQL-native ML CREATE MODEL / ML_PREDICT (HTTP, ONNX opt-in, native closures), VECTOR_SEARCH, full-refresh materialized tables SQL frontend

State

Capability Notes Reference
Keyed and broadcast state keyed_state<K,V> / broadcast_state<V> on the operator RuntimeContext State and backends
Backends In-memory, file-backed, changelog (WAL + materialisation), RocksDB (always built), ForSt (opt-in) including object-store-resident variants State and backends
Open snapshot format Snapshots are documented Arrow IPC; checkpoints open directly in pyarrow, DuckDB, Polars; Parquet and Iceberg export State snapshot format
Queryable state Live keyed state served over HTTP: JSON point lookups, whole-slot scans, Arrow IPC streams; one job can SELECT from another job's live state State and backends
Savepoints and state processor Offline savepoint read and transform API Fault tolerance and rescale
Schema evolution Migrate-at-restore with a migration registry and a pre-deploy compatibility gate Fault tolerance and rescale

Delivery guarantees

Capability Notes Reference
Checkpointing Chandy-Lamport barrier alignment; unaligned checkpoints at multi-input operators; async snapshot workers; fsync-gated acks Checkpointing
Exactly-once sinks Generic committer (prepare at barrier, commit on global durability, recover-and-re-commit): file, Kafka, Parquet, raw S3 multipart, Postgres PREPARE TRANSACTION Sink committer framework
Effectively-once upserts Changelog upsert and delete by PRIMARY KEY: Postgres, MySQL, Cassandra, Redis Sink committer framework
Source replay Source-offset recovery generalised across connectors Checkpointing

Scale and operations

Capability Notes Reference
Cluster runtime Coordinator/Worker control plane over a length-prefixed TCP protocol; jobs deploy as compiled plugins or SQL Distributed runtime
Failover Lost-worker detection, drain, redeploy from the latest completed checkpoint (fail-fast by default, config-gated restarts) Fault tolerance and rescale
Rescale Key-group repartitioning on deploy, scale up and down, per-operator rescale over HTTP; load-driven autoscaler trigger Fault tolerance and rescale
High availability Multi-coordinator leader election via etcd (opt-in); filesystem-backed job persistence Distributed runtime
Security TLS and mTLS on the cluster transport Network stack
Kubernetes Helm chart and a ClinkCluster/ClinkJob operator with savepoint-on-upgrade Distributed runtime
HTTP API and console JSON API, Prometheus metrics, SSE events, embedded dashboard; the full operations console is a separate project Distributed runtime
Efficiency Measured 3.87x less CPU per event and 15.5x less memory than a JVM stream processor on identical hardware with byte-identical output; raw per-run data published Efficiency and environmental impact
Allocator choice jemalloc as the process allocator, opt-in at build time (CLINK_WITH_JEMALLOC=ON, Linux); measured at +5% throughput on a windowed query, neutral elsewhere, no memory change. The allocator in use is reported by clink_node --version and at node startup Build options

Observability and debugging

Capability Notes Reference
Metrics Counter and gauge registry, Prometheus exposition, per-process system gauges Distributed runtime
Structured logging clink::log facade with an in-memory ring served over HTTP and zstd-rotated files Distributed runtime
Data lineage Per-job source/sink dataset graph with column-level lineage for SQL; built-in OpenLineage exporter Data lineage
Deterministic replay Flight recorder captures per-epoch operator input; clink replay re-executes byte-identically offline and can freeze an incident into a regression test Replay determinism

Embedding and APIs

Capability Notes Reference
Embedded engine clink run pipeline.sql: one process, no daemons; first result in ~155 ms (gated by a release test) Embedded execution
C ABI libclink embeds the engine behind a pure-C ABI with Arrow C stream results Embedded execution
Python pyclink returns results as pyarrow tables Embedded execution
Arrow wire format Every operator-to-operator data frame is an Arrow IPC stream; columnar schemas for built-in types, binary fallback for user types Network stack
Testing framework Public clink::test harnesses: state inspection, snapshot/restore, failure injection, MiniCluster Testing framework

Connectors

Twenty-plus sources and sinks, each documented with dependencies, factory names, options, and SQL usage in the connector catalogue: Kafka, Postgres (snapshot, CDC, sink), MySQL, ClickHouse, Cassandra, MongoDB, Redis, S3 and S3 Parquet, GCS Parquet, Azure Parquet, WebHDFS Parquet, Iceberg, Avro, HTTP, MQTT, NATS, Pulsar, RabbitMQ, file and built-ins.