ElastiCache for Redis/Valkey
Enabling Cluster Mode Is a One-Way Door — Decide Before You Need It
- Realistic ceiling on dataset size and write throughput over the cluster's lifetime
- Whether the client library is cluster-protocol-capable already
- Whether the application uses multiple Redis/Valkey database indices (blocks cluster mode — single-database only)
- Tolerance for a supervised migration project if this needs revisiting later
Production premise
Cluster mode only exists on node-based ElastiCache. Serverless shards your data automatically and has no cluster-mode toggle at all, so this page applies once you've committed to — or are evaluating — node-based deployment.
Within node-based, you get two shapes. Cluster mode disabled runs Valkey as a single logical dataset: one primary, up to 5 replicas. Cluster mode enabled splits the data across multiple nodes — up to 90 shards by default, extendable on request — so writes scale horizontally.
AWS's own migration path between the two is explicit. It runs one direction only.
Failure mode & inflection point
The door swings one way. You can migrate a cache from cluster mode disabled to enabled; AWS's documentation states the reverse plainly: "Reverting this configuration is not possible."
The migration has preconditions. The cluster must run Valkey 7.2+ (or Redis OSS 7.0+). Every key must live in database 0. The client must speak the cluster protocol, and auto-failover must already be configured with at least one replica behind it.
That list is where a late migration hurts. If your application already depends on multiple database indexes, or on a client with no cluster awareness, the move means real application changes — not just a config flip.
Production guardrail
Decide against your actual scaling ceiling rather than your current size. Cluster mode disabled caps you at what one primary can absorb; only cluster mode scales writes horizontally. If there's a real chance the dataset or the write throughput will outgrow a single shard's capacity, start in cluster mode now.
If you stay cluster-mode-disabled, at least run a cluster-protocol-aware client from day one. That keeps the migration open instead of betting on a clean one later. If you're genuinely unsure, "compatible" mode exists as a bridge state: clients connect via either protocol during a supervised transition. Just know the bridge runs one direction, same as the migration it serves.