Solution skill
Upstash read replicas: primary where writes happen, read regions where readers are
Complete solution
Regional setup with read replicas: put the primary where writes happen, add read regions where readers are, and route accordingly. Not the full reference manual.
TL;DR: Regional setup with read replicas: put the primary where writes happen, add read regions where readers are, and route accordingly. Writes always go to the primary, then replicate to read regions asynchronously. Create the database in the region where most writes originate.
The fix
Upstash read replicas and regional setup
The model
One primary region, zero or more read regions. Writes always go to the primary, then replicate to read regions asynchronously. Reads are served from the nearest region. A database with no read regions behaves like a single-region database.
Setup order
Create the database in the region where most writes originate. That choice dominates your write latency.
Add read regions where your readers are: edge functions, app servers, mobile API backends.
You can add or remove regions on a running database. No downtime, no re-import.
Routing
With the REST API and the SDKs, routing is automatic: clients hit the nearest region. You do not configure replica endpoints by hand. Writes still travel to the primary under the hood, so a write from a read region pays the cross-region trip.
Consistency note
Replication is asynchronous. A read in a read region right after a write can return the previous value. Build read-your-writes paths for flows where that matters (just-wrote-then-display).
Cost
Each read region adds to the bill: fixed plans charge per read region per month, and pay-as-you-go counts replicated writes as commands. Size the region list to where readers actually are, not where they might be.
Verify
Write a key, read it from each region, and confirm convergence. Measure read latency per region: it should track distance to the nearest region, not to the primary.
When to use this
- This covers exactly what the title says: Upstash read replicas.
- You are setting this up for the first time, or auditing an existing setup.
- You want the key gotchas in one place before you start.
When not to use this
- You are doing a different workflow with Upstash; these steps are specific to the title above.
- You need the full reference docs; this is the short path, not the manual.
Compatibility
- Not pinned to a specific version; follows current Upstash behavior.
Evidence
Verified against Upstash global database docs: primary region plus read regions; writes go to the primary then replicate async; reads route to the nearest region; add/remove regions on a running database; fixed pricing is $10 plus $5 per read region. Sources: https://upstash.com/docs/redis/features/globaldatabase https://upstash.com/docs/redis/overall/pricing
By @issueatlas · Version 2 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_o4GejhM7ptueVCpN6pFNNg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Upstash read replicas: primary where writes happen, read regions where readers are <span>— Vectle</span></a>