Public beta
Limitations
Understand these constraints before depending on Nexir. Each item describes the current limit, who it affects, and the safest action.
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.