Skip to content

Document and CI - Validate Valkey Support for Jawn #5753

Open

Description

@rileydes-improving

I tested Jawn’s Redis-backed paths against recent Valkey and found them to work without application code changes in current usage.

The command surface in use (GET, SET EX/PX, INCR, PTTL, PEXPIRE, and Lua via SCRIPT LOAD/EVALSHA) predates the fork and is compatible across Redis and Valkey. Since Jawn uses ioredis, backend selection appears to be configuration-only (REDIS_HOST).

At the moment, I don’t see Valkey mentioned in docs, README, or CI, so support appears to be “works in practice but undocumented/unverified in automation.”

Why this might be valuable

  • Self-hosting compatibility: Valkey is a common in-memory store choice across multiple hosting providers.
  • Enterprise adoption: Teams that moved away from Redis post-BSL often evaluate compatibility with existing infrastructure early.
  • Low-risk scope: Based on the current command usage, this looks like a docs + CI coverage addition with no behavior change for existing Redis users.

Current state

All Redis access goes through one ioredis client: valhalla/jawn/src/lib/clients/redisClient.ts.

Current subsystem usage:

Subsystem File Commands
KV Cache (L2) valhalla/jawn/src/lib/cache/kvCache.ts GET, SET PX
Proxy Rate Limiter valhalla/jawn/src/lib/proxy/RateLimiter.ts GET, SET EX
HTTP API Rate Limiter valhalla/jawn/src/middleware/ratelimitter.ts Lua (INCR, PTTL, PEXPIRE)
Usage Limit Cache valhalla/jawn/src/managers/UsageLimitManager.ts GET, SET EX
Encrypted Key/Auth Cache valhalla/jawn/src/lib/cache/staticMemCache.ts GET, SET EX

Not currently observed: Pub/Sub, Streams, sorted sets, transactions, or modules.

The Worker uses Cloudflare KV and is out of scope.

Suggested change

  1. Docs update: Add Valkey as a supported backend in self-hosting docs, including a REDIS_HOST example.
  2. CI job: Add a GitHub Actions workflow that starts valkey/valkey:8-alpine and runs the Jawn test suite against it.

Suggested acceptance criteria

  • Self-hosting docs mention Valkey support with configuration example.
  • CI includes a Jawn test job running against Valkey.
  • No behavior changes for existing Redis users.

Happy to open a PR if this direction is aligned.

Subsystem File Commands
KV Cache (L2) valhalla/jawn/src/lib/cache/kvCache.ts GET, SET PX
Proxy Rate Limiter valhalla/jawn/src/lib/proxy/RateLimiter.ts GET, SET EX
HTTP API Rate Limiter valhalla/jawn/src/middleware/ratelimitter.ts Lua (INCR, PTTL, PEXPIRE)
Usage Limit Cache valhalla/jawn/src/managers/UsageLimitManager.ts GET, SET EX
Encrypted Key/Auth Cache valhalla/jawn/src/lib/cache/staticMemCache.ts GET, SET EX

Not currently used: Pub/Sub, Streams, sorted sets, transactions, or modules.

The Worker uses Cloudflare KV exclusively and is out of scope.

Suggested change

  1. Docs update: Add Valkey as a supported backend in self-hosting docs, including a REDIS_HOST configuration example.
  2. CI job: Add a GitHub Actions workflow that starts valkey/valkey:8-alpine and runs the Jawn test suite against it.

Activity

  1. rileydes-improving commented on Sep 2, 2026

    @rileydes-improving
    Author

    This would be a quick docs change in #5764 if you have some time for review @chitalian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions