A newer version of this documentation is available.

View Latest

Compatibility of Couchbase Features, Couchbase Versions and the Couchbase Go SDK

    Compatibility Information for the Couchbase Go SDK

    Couchbase Version/SDK Version Matrix

    Couchbase SDKs are tested against a variety of different environments to ensure both backward and forward compatibility with different versions of Couchbase Server. The matrix below denotes the version of Couchbase Server, the version of the Go SDK and whether the SDK is:

    • Unsupported: This combination is not tested, and is not within the scope of technical support if you have purchased a support agreement.

    • Compatible: This combination has been tested previously, and should be compatible. This combination is not recommended by our technical support organization. It is best to upgrade either the SDK or the Couchbase version you are using.

    • Supported:This combination is subject to ongoing quality assurance, and is fully supported by our technical support organization.

    Table 1. Recommended SDK per Server Version Matrix
    SDK 1.1, 1.2 SDK 1.3 SDK 1.4 SDK 1.5

    Server 4.0-4.5

    Server 4.6

    Server 5.0-5.5

    Server 6.0

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

    Couchbase Feature Availability Matrix

    To take advantage of all features offered by Couchbase Server, you need to know what version of the Go SDK provides compatibility for the features you want to use. The following matrix shows which versions of the Couchbase Go SDK support the major features of each version of Couchbase Server.

    Table 2. Couchbase Server and SDK Supported Version Matrix
    Server 4.0, 4.1 Server 4.5, 4.6 Server 5.x Server 6.0

    Basic Features

    CRUD Operations

    All Versions

    View Querying APIs

    All Versions

    Geospatial Views

    All Versions

    Advanced Features

    Durability Requirements

    All Versions

    Carrier Publication Configuration

    All Versions

    SSL Connectivity

    All Versions

    Bulk Operations

    All Versions

    N1QL Querying

    All Versions

    Multi-Dimensional Scaling

    All Versions

    Sub-document API

    Since 1.1

    Full Text Search

    Since 1.1 (Experimental)

    Since 1.2

    Global Secondary Indexes (GSI)

    All Versions

    Memory Optimized Indexes (MOI)

    Not Supported

    All SDK versions

    Plasma Storage for Indexes

    Not Supported

    All SDK versions

    FTS Index Management from the SDK

    Not Supported

    Since 1.1

    Data Structures

    Not Supported

    Since 1.1

    Extended Attributes

    Not Supported

    Since 1.2.1


    Not Supported

    Since 1.2.3


    Not supported

    DP in 5.5 with 1.4

    Since 1.5

    Administrative Features

    Administrative API

    All Versions

    With RBAC, in Couchbase Server 5.0, authentication will depend upon access privileges, and upgrading to 5.0 with existing buckets, or upgrading Server, will require taking these changes into account.

    Couchbase Go SDK

    The Couchbase Go SDK is installed and managed using gopkg, in accordance with established best practices within the Go Community. As a result, specific versions are installed within a specific developer environment. The SDK follows Semantic Versioning and typically release an update of the SDK the third Tuesday of each month. In order to update your specific developer environment to this new version, you will have to instruct Go to go get that specific version. For further information, please reference the section on installation.

    Interface Stability

    Couchbase SDKs indicate the stability of an API through documentation. Since there are different meanings when developers mention stability, we mean interface stability: how likely the interface is to change or be removed entirely. A stable interface is one that is guaranteed not to change between versions, meaning that you may use an API of a given SDK version and be assured that the given API will retain the same parameters and behavior in subsequent versions. An unstable interface is one which may appear to work or behave in a specific way within a given SDK version, but may change in its behavior or arguments in future SDK versions, causing odd application behavior or compiler/API usage errors. Implementation stability is implied to be more reliable at higher levels, but all are tested to the level that is appropriate for their stability.

    Couchbase uses three interface stability classifiers. You may find these classifiers appended as annotations or comments within documentation for each API:

    • Committed: This stability level is used to indicate the most stable interfaces that are guaranteed to be supported and remain stable between SDK versions.

    • Uncommitted: This level is used to indicate APIs that are unlikely to change, but may still change as final consensus on their behavior has not yet been reached. Uncommitted APIs usually end up becoming stable APIs.

    • Volatile: This level is used to indicate experimental APIs that are still in flux and may likely be changed. It may also be used to indicate inherently private APIs that may be exposed, but "YMMV" (your mileage may vary) principles apply. Volatile APIs typically end up being promoted to Uncommitted after undergoing some modifications.

    • Internal: This level is used to indicate you should not rely on this API as it is not intended for use outside the module, even to other Couchbase components.

    APIs that are marked as Committed have a stable implementation. Uncommitted and Volatile APIs should be stable within the bounds of any known and often documented issues, but Couchbase has not made a commitment to these APIs and may not respond to reported defects with the same priority.