Skip to content

feat(valkey): Valkey Cluster support - #7

Merged
Arthurdw merged 8 commits into
mainfrom
feat/valkey-cluster
Oct 15, 2026
Merged

Arthurdw merged 8 commits into
mainfrom
feat/valkey-cluster

Conversation

@Arthurdw

Copy link
Copy Markdown
Member

Summary

  • Add `ValkeyStore::connect_cluster`; keys live in 256 hash-tag buckets so every script stays in one slot.
  • The guard creates the session id first and mines the token into the same bucket for sharded stores; the store rejects misaligned writes.
  • Subject-wide revoke is eventually consistent and crash-safe; a login racing a revoke is revoked or fails.

Notes

  • Key layout changed, no migration: existing Valkey sessions are unreachable after upgrade (mass logout).
  • Standalone purges now make 256 bucket calls.

Testing

  • Conformance and multi-bucket tests against a cluster, plus e2e scenarios in cluster mode.
  • CI runs a three-node cluster via `VALKEY_CLUSTER_URL`; local default is a single node (catches `CROSSSLOT`, not redirects).

@Arthurdw Arthurdw added the release:minor Next release bumps the minor version (0.x.0); use for breaking changes before 1.0 label Oct 15, 2026
@Arthurdw Arthurdw self-assigned this Oct 15, 2026
@Arthurdw Arthurdw added the enhancement New feature or request label Oct 15, 2026
@codecov

codecov Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.42683% with 15 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/store/valkey.rs 93.56% 15 Missing ⚠️

📢 Thoughts on this report? Let us know!

@Arthurdw
Arthurdw merged commit ac50925 into main Oct 15, 2026
16 checks passed
@Arthurdw
Arthurdw deleted the feat/valkey-cluster branch October 15, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request release:minor Next release bumps the minor version (0.x.0); use for breaking changes before 1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant