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 migration between storage-format generations and no rolling upgrade: a node refuses a data directory from another generation by name, and the procedure is a fresh cluster with data reloaded at the application level. 0.1.0-beta.4 moved the storage layout from 9 to 10, so a beta.3 data directory does not open under beta.4 or later. 0.1.0-beta.5 changes no storage format, but an in-place upgrade from beta.4, a rolling upgrade and a downgrade were not validated for this release.

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 its conditional and expiry options, single-key DEL, the counters INCR/DECR/INCRBY/DECRBY, the EXPIRE/TTL/PERSIST family, and a small operational set. There are no hashes, sets, lists, sorted sets or streams; no multi-key commands such as MSET/MGET; no EXISTS, TYPE, STRLEN or DBSIZE; and no Lua, functions, transactions/WATCH, pub/sub, blocking operations, modules, geospatial, HyperLogLog, persistence commands or cursor scans. Prefix listing of keys and version-conditioned writes are planned; multi-key atomicity and Active-Active replication are not scheduled.

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.

Memory

Limited: Each node plans its memory at startup and refuses new writes under memory pressure, but the plan is a target, not a hard ceiling on resident memory. Work already admitted can carry a process above its target, and there is no guarantee against the operating system's out-of-memory killer. With default settings, a node with 4 GiB of memory is refused at startup.

Affects: Small hosts and containers, and memory-limited deployments sized tightly against the target.

Do: Leave memory headroom above the process target, lower connection, in-flight command or response limits explicitly on small hosts, and retry writes refused with -TRYAGAIN, which have no effect.

Recovery time at scale

Limited: A follower that falls behind can replay recent history while the leader still holds it; the leader keeps extra history for it only within a byte budget, a time limit and its disk headroom. A follower that falls further behind rejoins through a snapshot transfer whose duration grows with dataset size. The beta.4 measurements, which beta.5 has not repeated, took about 2.5 minutes at 7.5 GiB, 9 minutes at 25 GiB and roughly an hour at 73 GiB on that hardware (single zone, local NVMe). The transfer itself is a small share of that time; preparing and activating the data on the receiving node dominates.

Affects: Any deployment whose dataset is tens of gigabytes or more, and any availability plan that assumes a replaced node is back within minutes.

Do: Size datasets so that a rejoin fits the recovery window you can tolerate, keep nodes from falling far behind (short outages, healthy disks), and watch the snapshot-install and catch-up metrics during a rejoin. No recovery time is guaranteed. Shortening this path is planned for a later release.

Leadership transfer under load

Limited: CLUSTER TRANSFER-LEADER and CLUSTER STEPDOWN require the new leader to have matched the leader's last log entry, which a voter rarely does while writes continue, so they are normally refused under sustained writes.

Affects: Planned leader maintenance on a busy cluster.

Do: Pause writes before moving leadership, then confirm the new leader with CLUSTER INFO.

Disk capacity

Limited: Nexir reserves disk for an incoming snapshot transfer and refuses transfers it cannot fit, but it does not yet stop accepting writes when a node's disk fills. The replication log can grow large while it waits for a snapshot to be taken, and a leader keeps up to 32 GiB of extra log by default for a follower that is catching up. A snapshot build that would not fit is deferred and retried rather than stopping the node, but nothing stops client writes from filling the disk. During an install a node briefly holds two copies of its state plus the log.

Affects: Nodes provisioned close to their dataset size, and disks well below 200 GiB with the default catch-up budget.

Do: Follow the disk-sizing checks in the configuration reference, alert on the on-disk footprint metrics for both databases, leave headroom of the same order as the dataset rather than a fixed percentage, and lower raft.log_retention_budget_bytes on small disks. No per-node capacity such as 256 GB has been validated.

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.