Public beta

Limitations

Understand these constraints before depending on Nexir. Each item describes the current limit, who it affects, and the safest action.

Beta data should be replaceableThe storage format and operational contract can change before general availability. Do not treat this release as production-ready.

Maturity and upgrades

Limited: APIs, command behavior, configuration, release packaging, and on-disk formats can change. There is no supported production rolling-upgrade guarantee across incompatible formats.

Affects: Every beta deployment, especially long-lived data.

Do: Pin versions, read release notes, test upgrades on copies, and keep data reproducible from another source.

Authentication and authorization

Limited: No passwords, ACLs, RBAC, cert-to-user authorization, or tenant isolation. mTLS authenticates a trusted certificate, not an application role.

Affects: Shared or untrusted networks and multi-tenant workloads.

Do: Use private networks, separate client/peer mTLS, strict firewalls, protected administration, and one trust domain per intended security boundary.

Backup and restore

Limited: No supported logical backup, restore, or point-in-time recovery. Internal snapshots only catch up nodes.

Affects: Anyone requiring disaster recovery, audit retention, or data portability.

Do: Use replaceable beta data. A stopped, full-directory cold copy is only a same-version node-level workaround—not a backup product contract.

Redis command coverage

Limited: RESP2 with a scalar-only subset — GET, SET (with EX/PX/EXAT/PXAT), single-key DEL, the EXPIRE/TTL/PERSIST family, and a small operational set. There are no hashes, sets, lists, sorted sets, or counters; no multi-key commands such as MSET/MGET; no EXISTS, TYPE, STRLEN, or DBSIZE; and no Lua, functions, transactions/WATCH, streams, pub/sub, blocking operations, modules, geospatial, HyperLogLog, persistence commands, or cursor scans. Multi-key semantics are being designed alongside sharding and Active-Active CRDT replication.

Affects: Applications migrating from Redis or libraries that issue implicit commands.

Do: Audit every required command against the compatibility table and test the exact client configuration with RESP2.

Transactions and retries

Limited: No public Redis transaction commands, and no atomicity across keys — every supported command touches exactly one key. A timeout or error after submitting a write can leave its outcome unknown.

Affects: Workloads needing multi-key or multi-command atomicity.

Do: Keep atomic work within a single key. Every supported write is idempotent when replayed with the same arguments, but a retried SET ... EX restarts its deadline, so read back PTTL when the exact deadline matters.

Pipelined read-then-write ordering

Limited: Within one connection's pipeline, execution order is guaranteed for write-then-write and write-then-read, but not for read-then-write or read-then-read. GET k pipelined immediately before SET k v may return v.

Affects: Clients that pipeline across a read-then-write boundary and assume Redis's strict per-connection submission order.

Do: Read the reply to the read before issuing the write across that boundary. Sequential request/response clients are unaffected. See Redis compatibility.

Cluster management

Limited: Membership, replacement, addressing, and scaling are manual. No automatic discovery, orchestration, Kubernetes operator, Helm chart, or node fencing after removal.

Affects: Operators of multi-node clusters.

Do: Change one member at a time from a healthy leader, verify catch-up before promotion, preserve quorum, and stop removed processes.

Sharding and topology

Limited: Nexir advertises one Redis Cluster slot range for compatibility but does not shard data across slots.

Affects: Workloads expecting horizontal partitioning or Redis Cluster resharding.

Do: Treat the current deployment as one replicated data set and size it accordingly.

Size and request limits

Limited: 512-byte command names, 1 MiB keys, 60 MiB values and aggregate requests, 128 arguments per request multibulk while the surface is scalar-only, bounded reply buffers, and no way to enumerate keys.

Affects: Large values, deep pipelines in one frame, and any workload that needs to discover keys it did not record.

Do: Bound value sizes and request fan-out, and keep your own key index in the application data model — KEYS and cursor SCAN do not exist.

Response memory over-subscription

Limited: Response budgets are write-side flow control, not pre-allocation. A reply is fully materialized before it reaches the writer, so per-connection peak buffered response memory can reach max_concurrent_reads_per_connection × storage.max_read_reply_bytes — 1 GiB at defaults against a declared 64 MiB budget.

Affects: Hosts sized against the declared response budget rather than the worst case.

Do: Watch nexir_client_buffered_response_bytes_max and nexir_client_buffered_response_bytes_worst_case, and set max_concurrent_reads_per_connection = 1 for the bounded profile.

Metrics and encryption

Limited: Prometheus is plaintext and unauthenticated. Nexir does not manage encryption at rest.

Affects: Networks or hosts with compliance/confidentiality requirements.

Do: Use a protected scrape path and platform-level disk/volume encryption and key management.