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
Yesmeans implemented and usablePartialmeans in progress or intentionally limited- blank means not implemented yet
Data Operations
| Table Type | Operation | Java Client | Go Client |
|---|---|---|---|
| Log | Append | Yes | Yes |
| Log | Typed Append | Yes | Yes |
| Log | Scan | Yes | Yes |
| Log | Scan with Projection | Yes | Yes |
| Log | Typed Scan | Yes | Yes |
| Log | Batch Scan with Limit | Yes | Yes |
| Primary Key | Upsert | Yes | Yes |
| Primary Key | Upsert with Partial Update | Yes | Yes |
| Primary Key | Typed Upsert | Yes | Yes |
| Primary Key | Delete | Yes | Yes |
| Primary Key | Lookup | Yes | Yes |
| Primary Key | Prefix Lookup | Yes | Yes |
| Primary Key | Typed Lookup | Yes | Yes |
| Primary Key | Batch Scan with Limit | Yes | Yes |
| Primary Key | Batch Scan (Snapshot) | Yes | Yes |
Reference:
Notes for Primary-Key Tables
- The canonical real-cluster E2E now validates the Go client against Fluss
COMPACTEDKV 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 localfile://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
ARROWlog format. - The Go client supports Arrow append/decode plus projection-aware
FetchLogWithOptions(...). - The real-cluster support contract validates projection through a dedicated
ARROWlog table while the broader all-types harness remains onINDEXEDtables.
Data Types
| Data Type | Java Client | Go Client |
|---|---|---|
| BOOLEAN | Yes | Yes |
| TINYINT | Yes | Yes |
| SMALLINT | Yes | Yes |
| INT | Yes | Yes |
| BIGINT | Yes | Yes |
| FLOAT | Yes | Yes |
| DOUBLE | Yes | Yes |
| CHAR(n) | Yes | Yes |
| STRING | Yes | Yes |
| DECIMAL(p, s) | Yes | Yes |
| DATE | Yes | Yes |
| TIME | Yes | Yes |
| TIME(p) | Yes | Yes |
| TIMESTAMP | Yes | Yes |
| TIMESTAMP(p) | Yes | Yes |
| TIMESTAMP_LTZ | Yes | Yes |
| TIMESTAMP_LTZ(p) | Yes | Yes |
| BINARY(n) | Yes | Yes |
| BYTES | Yes | Yes |
ARRAY<t> | Yes | Yes |
MAP<kt, vt> | Yes | Yes |
ROW<n0 t0, n1 t1, ...> | Yes | Yes |
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.
| Entity | Operation | Java Client | Go Client |
|---|---|---|---|
| Database | CreateDatabase | Yes | Yes |
| Database | DropDatabase | Yes | Yes |
| Database | DatabaseExists | Yes | Yes |
| Database | GetDatabaseInfo | Yes | Yes |
| Database | ListDatabases | Yes | Yes |
| Table | AlterTable | Yes | Yes |
| Table | CreateTable | Yes | Yes |
| Table | DropTable | Yes | Yes |
| Table | GetTableSchema | Yes | Yes |
| Table | GetTableInfo | Yes | Yes |
| Table | ListTables | Yes | Yes |
| Partition | CreatePartition | Yes | Yes |
| Partition | DropPartition | Yes | Yes |
| Partition | ListPartitionInfos | Yes | Yes |
| Snapshot | GetKvSnapshotMetadata | Yes | Yes |
| Snapshot | GetLatestKvSnapshots | Yes | Yes |
| Snapshot | GetLatestLakeSnapshot | Yes | Yes |
| Bucket | ListOffsets | Yes | Yes |
| Cluster | AlterClusterConfigs | Yes | Yes |
| Cluster | DescribeClusterConfigs | Yes | Yes |
| Cluster | CancelRebalance | Yes | Yes |
| Cluster | Rebalance | Yes | Yes |
| Cluster | ListRebalanceProgress | Yes | Yes |
| Server | AddServerTag | Yes | Yes |
| Server | RemoveServerTag | Yes | Yes |
| ACL | CreateAcls | Yes | Yes |
| ACL | DropAcls | Yes | Yes |
| ACL | ListAcls | Yes | Yes |
Data Lake Formats
| Format | Java Client | Go Client |
|---|---|---|
| Iceberg | Yes | |
| Lance | Yes | |
| Paimon | Yes | Yes |
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: