Compatibility | Couchbase Docs (original) (raw)

Couchbase SDKs are tested against a variety of different environments to ensure both backward and forward compatibility with different versions of Couchbase Server.

Couchbase Version/SDK Version Matrix

The matrix below denotes the version of Couchbase Server, the version of the Java SDK and whether the SDK is:

Recommended SDK per Server Version Matrix

3.4, 3.5 3.6, 3.7 3.8
Server 7.0 - 7.2
Server 7.6

Note the End of Life dates for Couchbase Server and SDK versions. See the notes there for Support details.

Capella Compatibility

The Couchbase Java SDK is fully compatible with Couchbase Capella, our fully-hosted database-as-a-service. To make development easier, the SDK includes the Capella client certificate ready installed.

Note, Capella is offered as a fully provisioned service, so the underlying version of Couchbase Server changes over time. For this reason, compatibility information between Capella and the SDK is available on the Capella compatibility page.

Couchbase New Feature Availability Matrix

Couchbase Server and SDK Supported Version Matrix

Server 7.0 & 7.1 Server 7.2 Server 7.6
Enhanced Durability All SDK versions
Durable Writes Since 3.0
Analytics Since 2.7
Collections Since 3.0.6
Scope-Level SQL++ (formerly N1QL) Queries & all Collections features Since SDK 3.2.0
Request Tracing Since SDK 3.1.0
Cloud Native Gateway Not Supported From SDK 3.5.0 (with Couchbase Autonomous Operator 2.6.1+)
Vector Search N/A From SDK 3.6.0

This table is not an exhaustive list — just a few highlights — provided to help assess compatibility of older versions in particular. For alignment of SDKs and new Server features, scroll down to the information below the API Version table.

Spring Data Couchbase Compatibility

Spring Data Couchbase uses the Java SDK underneath and as a result is also provides different compatibilities with Couchbase Server. The following table provides an overview at the time of Java SDK 3.8’s release:

Recommended Spring Data Couchbase per Server Version Matrix

SDC 5.0 - 5.2 SDC 5.3 - 5.5
Status → Maintenance Support New Features, Active Development
Server 7.0 - 7.6 Compatible Recommended

| | Check the Spring Data Couchbase’s compile dependencies — older versions may link an out-of-date version of the SDK in their dependencies list, although a supported version should be in the updates. Please make sure that you are using a supported version of the Couchbase Java SDK, prefereably the latest version, which will contain any available bug fixes. Using the latest Spring Data Couchbase should ensure that this is so. | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

Quarkus Java Compatibility

Couchbase Quarkus requires Java SDK 3.7.7 or newer.

API Version

This release of the SDK is written to version 3.7 of the SDK API specification (and matching the features available in Couchbase 7.6.6 and earlier). For most developers, just using the latest version will be all that matters, and few will need to look at another of our SDKs. Just for those few that do, the table below shows each Couchbase SDK release version that matches the API version (and a table that covers the earliest versions of the 3.x SDK API can be found in documentation for earlier versions of the SDK).

Whilst these two numbers match for the .NET SDK, this is not the case for the others, as version numbers for individual SDKs are bumped up in line with Semantic Versioning — check the release notes of each SDK for individual details.

SDK API Versions

API 3.3 API 3.4 API 3.5 API 3.6 API 3.7
.NET 3.3 3.4 3.5 3.6 3.7
C (libcouchbase) 3.3.0 - 3.3.2 3.3.3 ① N/A ② N/A ② N/A ②
C++ - - - 1.0 1.1
Go 2.5 2.6 & 2.7 2.8 2.9 2.10
Java 3.3 3.4 & 3.5 3.6 3.7 3.8
Kotlin 1.0 1.1 & 1.2 1.3 1.4 1.5
Node.js 4.1 4.2 4.3 4.4 4.5
PHP 4.0 4.1 4.2 4.2.2 4.3
Python 4.0 4.1 4.2 4.3 4.4
Ruby 3.3 3.4 3.5 3.5.2 3.6
Scala 1.3 1.4 & 1.5 1.6 1.7 1.8
1 Excludes DNS SRV refresh support in Serverless Environments.
2 For most purposes better productivity and functionality can be found in ourC++ SDK.

SDK API 3.7: Introduced support for KV reads from preferred server groups. The .NET SDK has been updated to support the latest Transactions specification — and the library is now incorporated within the .NET SDK. A new getMulti() interface batch reads with read committed isolation. Additionally, the Java SDK now includes a Quarkus extension with GraalVM support.

SDK API 3.6: Introduced support for base 64 encoded vector types alongside Server 7.6.2 (and Capella). General Availability of our C++ SDK — now available as a supported, stand-alone SDK, this SDK is also the core of our Node.js, PHP, Python, and Ruby SDKs.

SDK API 3.5: Introduced support for Vector Search alongside Server 7.6 (and Capella). Adds scoped indexes to Search (for Vector Seach and traditional FTS). Read from Replica for Query and Sub-Doc operations. KV Range Scan for querying documents through the Data Service, even if you don’t know the document IDs (for use cases that require relatively low concurrency and tolerate relatively high latency). Transactions now implemented as a native library in all SDKs (except libcouchbase).

SDK API 3.4: Introduced support for ARM v8 on Ubuntu 20.04, Transactions on Spring Data Couchbase, and compatibility with running in serverless environments, such as AWS λ. The couchbase2:// connection string was introduced in Go 2.7, Java 3.5, Kotlin 1.2, and Scala 1.5, for Cloud Native Gateway with Couchbase Autonomous Operator (from CAO 2.6.1).

SDK API 3.3: Introduced alongside Couchbase Server 7.1, adds Management API for Eventing and Index Management for Scopes & Collections; extends Bucket Management API to support Custom Conflict Resolution and Storage Options; adds new platform support for Linux Alpine OS, Apple M1, and AWS Graviton2; provides improved error messages for better error handling; and an upgraded Spark Connector that runs on Spark 3.0 & 3.1 Platform.

SDK API 3.2: Introduced alongside Couchbase Server 7.0, provides features in support of Scopes and Collections, extends capabilities around Open Telemetry API to instrument telemetry data, enhanced client side field level encryption to add an additional layer of security to protect sensitive data, adds new platform support such as Ubuntu 20.04 LTS.

SDK API 3.1: Introduced alongside Couchbase Server 6.6, focuses on Bucket Management API, adds capabilities around Full Text Search features such-as Geo-Polygon support, Flex Index, and Scoring.

SDK API 3.0: Introduced alongside Couchbase Server 6.5, is a major overhaul from its predecessor, has simplified surface area, removed long-standing bugs and deprecated/removed old API, introduces new programming languages Scala and Ruby, written in anticipation to support Scopes and Collections.