Skip to content

[NEW] Valkey Modules Versioning & Bundling #408

@hpatro

Description

@hpatro

Valkey supports dynamic loading of modules, which expands its capabilities by allowing users to add functionality beyond the core data structures at runtime. This feature enables users to enhance the core engine with custom modules developed independently. Bundling popular modules such as Bloom filters, JSON, Search, Timeseries, etc., along with the core engine enables adoption of Valkey for users seeking these features and also simplifies transitioning from Redis to Valkey.

Valkey can pursue one of the following options regarding bundling of Modules for each release version:

  1. Generate two binaries - Valkey Core (only the core) and Valkey Plus (core + modules): This option maintains a lightweight core binary and allows users to choose which modules to load. Additionally, a bundled binary includes popular and Valkey organization-supported modules.
  2. Generate a single binary with all Valkey-supported modules - This option involves creating a single binary of the core along with all Valkey organization-supported modules. This approach simplifies the release process by requiring only one binary.
  3. Generate Valkey core binary and each modules binary independently - This option allows different release cycle for the core and modules. The release process can be decoupled and can be performed independently maintainers of each project.

Personally, I prefer option 1 as it provides flexibility to users in choosing modules according to their needs as well as avoids the complexity of loading modules separately if they need any of the module based features.


Summary from discussion on March 03 2025 Valkey Team meeting:

  • Versioning

    • Valkey core - It will continue with it's existing version strategy. No changes in it.
    • Modules - will have their independent version release mechanism and will start off from 1.0.0. They will also follow semantic versioning guidelines. Each module within the repository will define their compatibility with Valkey core, further explained in [NEW] Valkey Modules Versioning & Bundling #408 (comment)
    • Valkey with Modules - This will be a bundle of Valkey core + GA Modules. This will also follow semantic versioning. The major and minor version of the bundled release will be tied up to the Valkey core's major/minor version. The patch version will be bumped for any latest patches picked for core/modules.
  • Artifact Release

    • Valkey core - It will continue to be released as is. The binaries will be available on the the valkey.io website and containers via docker images.
    • Valkey with Modules - This will be the new artifact release going forward and will contain the core with all the modules which have GA'd.

Ref: #407

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions