Java SDK v1.2.0
·
7 commits
to main
since this release
New Features and Improvements
- Built on Rust SDK 2.0.1: The JNI layer (
rust/jni/) now depends on
databricks-zerobus-ingest-sdk = "2.0.1"(was 2.0.0). The Java-facing API
surface (ZerobusSdk,ZerobusProtoStream,ZerobusJsonStream,
ZerobusArrowStream,StreamConfigurationOptions,
ArrowStreamConfigurationOptions) is unchanged. - Arrow Flight promoted to Beta:
ZerobusArrowStream/
ArrowStreamConfigurationOptionsand the surrounding documentation
(README, examples) are no longer labelled experimental. The API is
stabilising but may still change before reaching GA. (Mirrors the Rust
SDK 2.0.1 promotion.) ArrowStreamConfigurationOptions: AddedstreamPausedMaxWaitTimeMsfor the maximum time (milliseconds) to wait in the paused state during graceful close (-1= full server duration,0= immediate recovery).- Java SDK identifier on the wire: The SDK now reports itself as
zerobus-sdk-java/<version>on the HTTPuser-agentheader (previously
it inherited the Rust SDK identifierzerobus-sdk-rs/<rust-version>).
Server-side telemetry can now distinguish Java clients from Rust clients.
Behavior Changes
-
StreamConfigurationOptions.maxInflightRecordsdefault raised from
50_000to1_000_000to match the Rust SDK 2.0.1 default. The Java
wrapper previously hard-coded 50k while the Rust SDK quietly raised its
default to 1M, so Java clients ran with a 20× lower in-flight ceiling
than Rust clients. Callers who relied on the old cap can pin it back
explicitly:StreamConfigurationOptions.builder() .setMaxInflightRecords(50_000) .build();
Documentation
- Updated
ArrowIngestionExample.javato demonstrate all three IPC
compression codecs end-to-end. Opens three streams in sequence (NONE,
LZ4_FRAME,ZSTD), ingests 10 batches per stream, then
waitForOffset+flush+close. - Updated
README.md,examples/README.md,examples/arrow/README.md,
and Javadoc onZerobusArrowStream/ArrowStreamConfigurationOptions
/ZerobusSdk.createArrowStreamto reflect the Beta promotion. - Documented the JDK 9+
--add-opens=java.base/java.nio=...JVM flags
required byarrow-memory-netty17.x when usingZerobusArrowStream,
in both the main README and the Arrow examples README.
Internal Changes
maven-surefire-pluginnow passes the required--add-opensflags so
Arrow integration tests run cleanly on JDK 9+ without per-developer
setup.- Bumped
zerobus-jnicrate version from1.1.1to1.2.0(used by the
Java SDK identifier embedded at compile time viaCARGO_PKG_VERSION).