Client Matrix
Aerospike Database features are implemented through an interaction between Aerospike clients and the Aerospike server. The enhanced developer API of a new client is typically required to allow application developers to access new server features. Applications using older client versions will continue to work against an upgraded Aerospike Database cluster, as long as they aren’t using a feature that had been removed after a deprecation period. See Aerospike Database versioning and releases.
This page details compatibility between Aerospike client and server versions, and defines the support period for different clients.
Full client/server feature compatibility
The following matrix shows the minimal version of each client required for full feature compatibility with the given Aerospike Database version.
| Aerospike Database version | 8.1.0 | 8.0.0 | 7.2.0 | 7.1.0 | 7.0.0 | 6.4.0 | 6.3.0 | 6.2.0 | 6.1.0 | 6.0.0 | 5.7.0 | Support Level |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Java client version | 9.1.0 | 9.0.3 | 8.1.0 | 8.1.0 | 7.2.0 | 6.1.0 | 6.1.0 | 6.1.0 | 6.1.0 | 6.0.0 | 5.1.6 | Official |
| Python client version | 17.1.0 | 16.0.1 | 15.1.0 | 15.0.0 | 14.0.0 | 11.0.1 | 11.0.1 | 7.0.0 | 7.0.2 | 7.0.2 | 6.1.0 | Official |
| Go client version | 8.3.0 | 8.0.1 | 7.2.0 | 7.2.0 | 7.0.0 | 6.13.0 | 6.10.0 | 6.4.0 | 6.4.0 | 6.4.0 | 5.10.0 | Official |
| C# client version | 8.1.0 | 8.0.2 | 7.1.0 | 7.1.0 | 6.2.0 | 6.0.0 | 6.0.0 | 5.2.3 | 5.2.3 | 5.0.0 | 4.2.7 | Official |
| C client version | 7.1.0 | 7.0.2 | 6.6.0 | 6.6.0 | 6.5.2 | 6.3.1 | 6.3.1 | 6.1.1 | 6.1.1 | 6.0.0 | 5.2.8 | Official |
| Node.js client version | 6.3.0 | 6.0.2 | 5.12.0 | 5.12.0 | 5.9.0 | 5.4.0 | 5.4.0 | 5.0.3 | 5.0.3 | 5.0.3 | 4.0.0 | Official |
| PHP client version | - | - | 1.1 | 1.1 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | - | Community |
| Ruby client version | - | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | Community |
| Rust client version | - | 2.0.0 | 1.3.0 | 1.2.0 | 1.2.0 | 1.2.0 | 1.2.0 | 1.2.0 | 1.2.0 | 1.2.0 | 1.2.0 | Community |
Language-specific compatibility notes
C
Rack Awareness
The C client and the clients that rely on it (Python and Node.js) support a maximum replication factor (RF) of 3. If you set a higher RF, it accepts the value, but still uses only three replicas. If your client attempts a third replication, the chosen node uses the master instead of using the fourth replica.
Python
Rack Awareness
The Python client relies on the C client, and likewise supports a maximum replication factor (RF) of 3. If you set a higher RF, it accepts the value, but still uses only three replicas. If your client attempts a third replication, the chosen node uses the master instead of using the fourth replica.
NodeJS
Rack Awareness
The Node.js client relies on the C client, and likewise supports a maximum replication factor (RF) of 3. If you set a higher RF, it accepts the value, but still uses only three replicas. If your client attempts a third replication, the chosen node uses the master instead of using the fourth replica.
Java
Specify read consistency options in write operations
The Aerospike Java client has had various properties to specify read consistency options.
In client versions prior to 4.4.0, use the consistencyLevel property with the server running in Available and Partition-tolerant (AP) mode.
In client version 4.4.0 and later, consistencyLevel was replaced with ReadModeAP for availability mode namespaces, and added a ReadModeSC property for strong consistency mode namespaces.
WritePolicy includes ReadModeAP because WritePolicy inherits all variables from the Policy class, which contains ReadModeAP.
However, ReadModeAP only applies to reads, not writes, so all writes (which use WritePolicy) ignore ReadModeAP.
Specific parameters control write transaction behavior in AP mode.
ReadModeAPcontrols duplicate resolution. The possible values areALL, which enables duplicate resolution, andONE, which disables duplicate resolution.ReadModeSCcontrols consistency options in strong consistency-enabled namespaces. The possible values are:ALLOW_REPLICA,ALLOW_UNAVAILABLE,LINEARIZEandSESSION.
For write transactions, the server parameter disable-write-dup-res controls duplicate resolution. The default is false, meaning write duplicate resolution is enabled.
At first glance, the client-side parameter commitLevel appears similar in nature to disable-write-dup-res. However, this is not the case.
Unlike disable-write-dup-res, which controls behavior during migration, commitLevel and the server side write-commit-level-override determine when the server acknowledges a successful write.
By default, the server waits until replica writes are complete. However, you can switch to “fire and forget” mode where the server returns success as soon as the master write is complete. See write-commit-level-override for more details.
Minimum usable client versions
The following matrix shows the minimal client version that ensures non-breaking operation against the given server version. Applications using older client versions may still work, if they do not use developer API functionality affected by the breaking changes specified below.
| Database version | 8.1.0 | 8.0.0 | 7.2.0 | 7.1.0 | 7.0.0 | 6.4.0 | 6.3.0 | 6.1.0 | 6.0.0 | 5.7.0 | 4.9.0 | Support Level |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Java client version | 6.0.0 | 6.0.0 | 6.0.0 | 6.0.0 | 6.0.0 | 6.0.0 | 6.0.0 (5.1.6) | 6.0.0 (5.0.1) | 6.0.0 (5.0.1) | 4.4.2 | 3.3.3 | Official |
| Python client version | 7.0.2 | 7.0.2 | 7.0.2 | 7.0.2 | 7.0.2 | 7.0.2 | 7.0.2 (6.1.0) | 7.0.2 (6.1.0) | 7.0.2 (6.1.0) | 6.0.0 | 3.1.1 | Official |
| Go client version | 7.0.0 | 7.0.0 | 7.0.0 | 7.0.0 | 7.0.0 | 6.10.0 | 6.0.0 (5.10.0) | 6.0.0 (4.0.0) | 6.0.0 (4.0.0) | 4.2.0 | 1.38 | Official |
| C# client version | 5.1.0 | 5.1.0 | 5.1.0 | 5.1.0 | 5.1.0 | 5.1.0 | 5.0.0 (4.2.7) | 5.0.0 (4.0.0) | 5.0.0 (4.0.0) | 3.9.15 | 3.13 | Official |
| C client version | 7.0.2 | 7.0.2 | 6.1.1 | 6.1.1 | 6.1.1 | 6.1.1 | 6.0.0 (5.2.3) | 6.0.0 (5.0.0) | 6.0.0 (5.0.0) | 4.6.24 | 4.5.0 | Official |
| Node.js client version | 5.0.3 | 5.0.3 | 5.0.3 | 5.0.3 | 5.0.3 | 5.0.3 | 5.0.3 (4.0.0) | 5.0.3 (4.0.0) | 5.0.3 (4.0.0) | 3.16.7 | 3.9.0 | Official |
| PHP client version | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | - | Community |
| Ruby client version | - | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | 2.11.0 | Community |
Aerospike Database 5.2.0 introduced filter expressions as an upgrade to the predicate expressions query language. The predicate expression system was supported until Database 6.0.0, when it was removed.
In the “Minimum usable client versions” chart, the client version number in parentheses is usable with the corresponding server version as long as the application has migrated to using filter expressions (using a client version that supports both filter and predicate expressions). Otherwise, the higher-numbered client version ensures predicate expressions cannot be used with server versions that don’t support them.
Major server changes
| Server version | Breaking change |
|---|---|
| 7.0.0 | Go client versions before 7.0.0 working with Database 7.0.0 unexpectedly interpret integers larger than 2^32 as uint64 instead of int32. Use Go client version 7.0.0 or later with Database 7.0.0 and later. |
| 6.4.0 | Removed the deprecated info commands for scan, scan-show, scan-abort, and scan-abort-all. Use the equivalent query commands, query-show, query-abort, and query-abort-all. |
| 6.3.0 | Removed the jobs: info command. |
| 6.0.0 | Removed predicate expressions (PredExp). |
| 5.6.0 | Removed scan policies percent, failOnClusterChange, and priority. |
| 4.9.0 | Client applications must support the new style truncate command, and the batch-index protocol for batch operations. |
| 4.4.0 | Removed support for batch-direct. |
Client versioning and support
Aerospike clients use semantic versioning for their releases. The version format is major.minor.patch (for example, Java client 9.1.0):
The following tables show the release dates and end-of-life (EOL) dates for each major version of Aerospike’s officially supported clients. All minor and patch releases within a major version share the same EOL date as their parent major version.
See Product Stages for an explanation of General Availability (GA) and EOL.
Java Client
| Major Version | Initial Release Date | End of Life Date |
|---|---|---|
| 9.x.x | 2024-11-19 | 2027-11-19 |
| 8.x.x | 2024-01-05 | 2027-01-05 |
| 7.x.x | 2023-08-02 | 2026-08-02 |
| 6.x.x | 2022-03-31 | 2025-03-31 |
| 5.x.x | 2020-10-21 | 2023-10-21 |
| 4.x.x | 2017-05-22 | 2020-05-22 |
| 3.x.x | 2014-03-14 | 2017-03-14 |
Python Client
| Major Version | Initial Release Date | End of Life Date |
|---|---|---|
| 18.x.x | 2025-10-01 | 2028-10-01 |
| 17.x.x | 2025-05-05 | 2028-05-05 |
| 16.x.x | 2024-12-16 | 2027-12-16 |
| 15.x.x | 2024-04-09 | 2027-04-09 |
| 14.x.x | 2023-11-14 | 2026-11-14 |
| 13.x.x | 2023-08-21 | 2026-08-21 |
| 12.x.x | 2023-07-28 | 2026-07-28 |
| 11.x.x | 2023-03-27 | 2026-03-27 |
| 10.x.x | 2023-01-27 | 2026-01-27 |
| 9.x.x | 2023-01-04 | 2026-01-04 |
| 8.x.x | 2022-11-18 | 2025-11-18 |
| 7.x.x | 2022-04-07 | 2025-04-07 |
| 6.x.x | 2021-05-10 | 2024-05-10 |
| 5.x.x | 2021-02-17 | 2024-02-17 |
| 4.x.x | 2020-09-24 | 2023-09-24 |
| 3.x.x | 2018-01-10 | 2021-01-10 |
| 2.x.x | 2016-02-16 | 2019-02-16 |
| 1.x.x | 2014-07-15 | 2017-07-15 |
Go Client
| Major Version | Initial Release Date | End of Life Date |
|---|---|---|
| 8.x.x | 2025-01-22 | 2028-01-22 |
| 7.x.x | 2023-12-14 | 2026-12-14 |
| 6.x.x | 2022-04-07 | 2025-04-07 |
| 5.x.x | 2021-05-11 | 2024-05-11 |
| 4.x.x | 2020-11-27 | 2023-11-27 |
| 3.x.x | 2020-06-08 | 2023-06-08 |
| 2.x.x | 2019-03-20 | 2022-03-20 |
| 1.x.x | 2014-08-28 | 2019-08-28 |
C# Client
| Major Version | Initial Release Date | End of Life Date |
|---|---|---|
| 8.x.x | 2024-12-06 | 2027-12-06 |
| 7.x.x | 2023-12-08 | 2026-12-08 |
| 6.x.x | 2023-02-03 | 2026-02-03 |
| 5.x.x | 2022-03-31 | 2025-03-31 |
| 4.x.x | 2020-10-21 | 2023-10-21 |
| 3.x.x | 2013-11-20 | 2016-11-20 |
C Client
| Major Version | Initial Release Date | End of Life Date |
|---|---|---|
| 7.x.x | 2024-12-06 | 2027-12-06 |
| 6.x.x | 2022-03-31 | 2025-03-31 |
| 5.x.x | 2020-10-21 | 2023-10-21 |
| 4.x.x | 2016-01-14 | 2019-01-14 |
Node.js Client
| Major Version | Initial Release Date | End of Life Date |
|---|---|---|
| 6.x.x | 2024-12-23 | 2027-12-23 |
| 5.x.x | 2022-05-01 | 2025-05-01 |
| 4.x.x | 2022-03-14 | 2025-03-14 |
| 3.x.x | 2017-10-03 | 2020-10-03 |
| 2.x.x | 2016-04-19 | 2019-04-19 |
| 1.x.x | 2014-02-11 | 2017-02-11 |