Skip to main content

Support Matrix

This page brings the current repo support matrix into the docs site so readers can stay inside the website instead of jumping out to Markdown in the repository.

The upstream Java client remains the comparison baseline for overlapping features. The Go SDK aims to match Fluss behavior while shaping the public API in an idiomatic Go way.

Current Validation Context​

The strongest real-cluster support contract today comes from the Fluss + Paimon demo environment under demo/fluss-paimon.

That harness is currently green for the implemented Go client/ surface covering:

  • database, table, and partition admin lifecycle
  • indexed log append and limit scan
  • Arrow log fetch and projection
  • all-types log round-trip
  • primary-key upsert, lookup, partial update, limit scan, delete, and prefix lookup
  • primary-key snapshot batch scan

These behaviors are validated against a live Fluss deployment using the upstream Java client semantics as the behavioral reference.

Legend​

  • Yes means implemented and usable
  • Partial means in progress or intentionally limited
  • blank means not implemented yet

Data Operations​

Table TypeOperationJava ClientGo Client
LogAppendYesYes
LogTyped AppendYesYes
LogScanYesYes
LogScan with ProjectionYesYes
LogTyped ScanYesYes
LogBatch Scan with LimitYesYes
Primary KeyUpsertYesYes
Primary KeyUpsert with Partial UpdateYesYes
Primary KeyTyped UpsertYesYes
Primary KeyDeleteYesYes
Primary KeyLookupYesYes
Primary KeyPrefix LookupYesYes
Primary KeyTyped LookupYesYes
Primary KeyBatch Scan with LimitYesYes
Primary KeyBatch Scan (Snapshot)YesYes

Reference:

Notes for Primary-Key Tables​

  • The canonical real-cluster E2E now validates the Go client against Fluss COMPACTED KV semantics for upsert, partial update, lookup, limit scan, delete, and prefix lookup.
  • These flows intentionally align to upstream Java behavior first, then adapt to the Go-native public surface.
  • The current snapshot path already supports schema-id-aware remapping for older snapshot rows onto the requested target schema.
  • Real-cluster compatibility is proven for the current RustFS/Paimon demo path, with built-in fetcher support for both s3:// and local file:// or plain paths.
  • Broader snapshot portability across additional filesystem backends and cluster variants still deserves follow-up validation.

Notes for Log Projection​

  • Upstream/server behavior only supports projection on ARROW log format.
  • The Go client supports Arrow append/decode plus projection-aware FetchLogWithOptions(...).
  • The real-cluster support contract validates projection through a dedicated ARROW log table while the broader all-types harness remains on INDEXED tables.

Data Types​

Data TypeJava ClientGo Client
BOOLEANYesYes
TINYINTYesYes
SMALLINTYesYes
INTYesYes
BIGINTYesYes
FLOATYesYes
DOUBLEYesYes
CHAR(n)YesYes
STRINGYesYes
DECIMAL(p, s)YesYes
DATEYesYes
TIMEYesYes
TIME(p)YesYes
TIMESTAMPYesYes
TIMESTAMP(p)YesYes
TIMESTAMP_LTZYesYes
TIMESTAMP_LTZ(p)YesYes
BINARY(n)YesYes
BYTESYesYes
ARRAY<t>YesYes
MAP<kt, vt>YesYes
ROW<n0 t0, n1 t1, ...>YesYes

Reference:

Admin Operations​

Notes for Admin Work​

  • The canonical Fluss + Paimon harness is green for safe database, table, and partition lifecycle coverage through the public Go admin API.
  • Cluster-global admin mutations such as ACL changes, cluster config mutation, rebalance control, and server-tag mutation are implemented in the SDK and covered by mock integration tests, but they remain outside the narrower single-tablet demo contract.
EntityOperationJava ClientGo Client
DatabaseCreateDatabaseYesYes
DatabaseDropDatabaseYesYes
DatabaseDatabaseExistsYesYes
DatabaseGetDatabaseInfoYesYes
DatabaseListDatabasesYesYes
TableAlterTableYesYes
TableCreateTableYesYes
TableDropTableYesYes
TableGetTableSchemaYesYes
TableGetTableInfoYesYes
TableListTablesYesYes
PartitionCreatePartitionYesYes
PartitionDropPartitionYesYes
PartitionListPartitionInfosYesYes
SnapshotGetKvSnapshotMetadataYesYes
SnapshotGetLatestKvSnapshotsYesYes
SnapshotGetLatestLakeSnapshotYesYes
BucketListOffsetsYesYes
ClusterAlterClusterConfigsYesYes
ClusterDescribeClusterConfigsYesYes
ClusterCancelRebalanceYesYes
ClusterRebalanceYesYes
ClusterListRebalanceProgressYesYes
ServerAddServerTagYesYes
ServerRemoveServerTagYesYes
ACLCreateAclsYesYes
ACLDropAclsYesYes
ACLListAclsYesYes

Data Lake Formats​

FormatJava ClientGo Client
IcebergYes
LanceYes
PaimonYesYes

For Go, Paimon here means the SDK is validated against a Fluss deployment configured with Paimon-backed lakehouse infrastructure, covers the Java-aligned lake snapshot admin surface, and participates in the canonical demo that prints the manual-style hot/cold query behavior through Flink SQL.

Like the upstream Java client module, this does not imply a separate Paimon-native public reader API inside the Fluss client SDK itself.

Reference: