Skip to main content
V5 - Java Server DocumentationThese docs are for Java Server V5 Only. For all other languages and platforms, continue using SDK v4 until V5 support is available.
5.0.0-java (GA)
Release Date: December 22, 2025
We’re excited to announce the General Availability of the Ditto Java Server SDK! Designed for server-side applications and backend services, the Java Server SDK delivers reliable real-time data synchronization and distributed state management, now production-ready!

API Support Guarantees

General Availability (GA) means API stability! Starting with 5.0.0-java Ditto will guarantee semver support of all APIs following industry standards. For more on semver see semver.org. Fixed: Ditto.init() initialization failure on sandboxed Windows applications. (SDKS-2462)
5.0.0-java-rc.3
Release Date: December 11, 2025
Fixed: Ditto.init() failing on Windows when using a non-default persistence directory. (SDKS-2462)
5.0.0-java-rc.2
Release Date: December 1, 2025
Added: Added docs to all public APIs. (#19312))
5.0.0-java-rc.1
Release Date: November 18, 2025
Changed: Rename Error classes to Exception (SDKS-1859) Removed: Java DittoStoreObserver.observe() methods that don’t include a transform function parameter are removed. (Store observer flow updates #19214) Fixed: Memory leak in DittoQueryResult.close(), which now also closes its DittoQueryResultItem instances. This eliminates the need for manual cleanup and resolves excessive memory usage with large query results. (SDKS-1463) Fixed: clientInfo not returned on auth failure (SDKS-1656)
5.0.0-preview.3
Release Date: September 30, 2025

5.0.0 Common Changelog

Removed: Legacy query builder. Use the new Ditto Query Language (DQL) instead.

5.0.0-preview.3 Java Specific Changes

Added: New com.ditto:ditto-java-android module for using the Java SDK on Android. (SDKS-1314) Added: New DittoFactory.create() method for creating a new instance of Ditto. (SDKS-1314) Added: Aligned accessor methods across both DittoCborSerializable and DittoJsonSerializable. Note that the get*() accessor method convention has been changed to as*(). (SDKS-1537) Added: Deserialization asNullable*() methods accessors on DittoCborSerializable for nullable types. These allow for differentiating between null and absent or invalid values. (SDKS-1072) Added: asAttachmentTokenOrNull() method to DittoCborSerializable (SDKS-1785) Added: isNull() method to DittoCborSerializable (SDKS-1537) Added: toDittoCbor() method to DittoAttachment (SDKS-1785) Added: getMutatedDocumentIds() method to DittoQueryResult. (SDKS-1296) Changed: The Java SDK now show up as “Java” instead of “JVMBased” in the Ditto portal. (SDKS-1346) Changed: Public types in the ditto-java are now implemented as final classes. Previously these were Java interface with a Kotlin class pairs. (SDKS-1361)
5.0.0-preview.2
Release Date: July 8, 2025

5.0.0 Common Changelog

Removed: Legacy query builder. Use the new Ditto Query Language (DQL) instead.

5.0.0-preview.2 Java Specific Changes

Fixed: UnsatisfiedLinkError on Linux (SDKS-1324).
5.0.0-preview.1
Release Date: July 3, 2025

5.0.0 Common Changelog

Removed: Legacy query builder. Use the new Ditto Query Language (DQL) instead.

5.0.0-preview.1 Java Specific Changes

Added: Support for macOS (x86_64 and arm64) Added: Support for Windows (x86_64) Added: Support for Linux (x86_64) Changed: Maven coordinates have changed to com.ditto:ditto-java. Changed: Package names now start with com.ditto.java. Removed: The new ditto-java API does not support the Android platform at this time. Please contact us if you are interested in using Ditto in your Java Android app.