Kuzzle 2.61 #
Status: in beta since 2026-10-30 (2.61.0-beta.1, then 2.61.0-beta.2).
The GitHub release notes list every commit. This page tells you what changes for you. For what to check before you upgrade, read Upgrading from 2.60.
In short #
2.61 opens Kuzzle to other storage engines. A storage engine can now come as a separate npm package, a storage driver, that you install next to Kuzzle and name in the configuration. Elasticsearch 7 and 8 keep working exactly as before: they are now Kuzzle's built-in drivers, shipped as packages Kuzzle installs with itself.
What you need to do #
Nothing. An Elasticsearch 7 or 8 setup needs no change, in its configuration or its dependencies.
What's new #
- Storage drivers. Set
services.storageEngine.driverto the name of a driver package to run Kuzzle on another storage engine. Kuzzle checks the driver at startup and refuses to start if it is missing, invalid or not made for this Kuzzle version. The API does not change: queries and mappings are still written in the Elasticsearch format. Read Storage Drivers. - Capabilities. A driver may not support every feature (aggregations, mapping changes, statistics, update by query). A request needing one it does not support is rejected with a clear
services.storage_driver.unsupported_capabilityerror. The built-in drivers support them all. - Same driver on every cluster node. A node running another driver, or another version of it, than the rest of the cluster is refused when it joins, with a
cluster.join.storage_driver_mismatcherror. Nodes running the built-in Elasticsearch drivers are not compared, so an Elasticsearch 7 or 8 cluster joins as before. - Elasticsearch 7 and 8 as packages (2.61.0-beta.2). The built-in drivers now live in their own packages,
kuzzle-storage-es-7andkuzzle-storage-es-8, which Kuzzle depends on and installs with itself: same code, same behavior, still selected bymajorVersion. Yourpackage.jsondoes not change. - Elasticsearch 9. Install the driver
kuzzle-storage-es-9(in beta) next to Kuzzle and setservices.storageEngine.driverto"kuzzle-storage-es-9". It is Kuzzle's Elasticsearch 8 driver on the Elasticsearch 9 client: same mappings, same queries, same errors. majorVersionis deprecated, in the documentation only: it keeps working unchanged in Kuzzle 2, and Kuzzle 3 will select the storage engine withdriveralone. Kuzzle warns at startup only if your configuration sets bothdriverandmajorVersion, sincemajorVersionis then ignored.- For driver authors.
kuzzleexports what a driver needs: theStorageDrivercontract and its types, a conformance kit (describeStorageDriverConformance) that tests a driver against its real engine, andstorageError, so that a driver returns the same errors as Kuzzle. Read the new Write storage drivers guide. - Drivers documentation. Each official driver has its own documentation (install, configuration, TypeScript, compatibility, troubleshooting) in the new Drivers section.
What's fixed #
- A node joining a cluster could still list an index or a collection that another node had deleted before it joined, and keep a collection lock that was already released. It now replaces its cache with what the storage holds when it loads it.
Under the hood #
kuzzledepends onkuzzle-storage-es-7andkuzzle-storage-es-8(1.0.0-beta.1), at pinned versions: a new version of a built-in driver reaches you with a Kuzzle release.