Relationship to the Java Client
The upstream Java client is the behavioral reference for this Go SDK.
That means when a Fluss feature already exists in Java, this repo aims to:
- match protocol and runtime semantics first
- adapt the public API into idiomatic Go second
What “Inspired by Java” Means Here
This Go SDK is not intended to be a literal port.
It intentionally prefers:
context.Contexton networked operations- explicit constructors such as
client.Dial(...) - lightweight helper clients over large builder-heavy object graphs
- public Go-native types instead of exposing generated protocol structs
Why Keep Java as the Reference
The Java client is the original and most mature Fluss SDK. It provides the best reference point for:
- protocol behavior
- routing semantics
- writer and scanner intent
- snapshot, lookup, and lakehouse workflows
The Go repo uses that client to avoid inventing different Fluss semantics while still making the day-to-day API feel like Go.