Facts read November 9, 2026
Cloudflare Durable Objects vs Upstash Redis
Upstash Redis is Cuely's default counters and cache pick when your description doesn't favor either one: redis counters, sorted sets and expiring keys over HTTP, so it works from serverless and edge functions. Pick Cloudflare Durable Objects if you care most about realtime features.
Side by side
| Fact | Cloudflare Durable Objects | Upstash Redis |
|---|---|---|
| What it is | Single-instance stateful objects on Cloudflare's network, each with its own SQLite storage and WebSockets. | Serverless Redis over HTTP, billed per command or as a fixed monthly plan. |
| Free plan | On Workers Free (SQLite-backed objects only): 100,000 requests a day, 13,000 GB-s of duration a day, 5 million rows read and 100,000 rows written a day, 5 GB stored in total. Past any limit, further operations fail with an error until 00:00 UTC. | Free: 250 MB of data, 500K commands a month, 10 GB of bandwidth a month, 1 database, up to 10,000 commands per second. |
| Paid from | On Workers Paid ($5/month account minimum): 1M requests a month, then $0.15 per million; 400,000 GB-s, then $12.50 per million GB-s; 50M rows written, then $1.00 per million; 5 GB-month, then $0.20 per GB-month. | Pay as you go: $0.20 per 100K commands; storage $0.25 per GB after the first 1 GB; bandwidth free up to 200 GB a month, then $0.03/GB. Fixed 250 MB: $10/month with no per-command billing. |
| At 1,000 users | $0/month | $0/month |
| Open source | No | No |
| Self-hostable | No | No |
| Best for | Everything on Cloudflare; Pushing live updates over WebSockets; Per-room or per-question state | Vote counts and live tallies; Leaderboards (sorted sets); Streaks and rate limits (keys that expire); Caching hot reads |
| Watch out | You write the counting, sharding and leaderboard code yourself; there are no Redis-style commands. One object has a soft limit of 1,000 requests a second, so a big spike needs counters split across objects. | Free stops at 500K commands a month, which a viral day can use in hours; switch to pay as you go and set its budget cap before launch. The free plan allows 1 database. |
Where they differ
The published scores, from −3 to +3, that decide which one Cuely picks for each need.
| Need | Cloudflare Durable Objects | Upstash Redis |
|---|---|---|
| realtime features | +2 The same object can hold players' WebSockets; with the Hibernation API idle connections aren't billed for duration, and incoming messages bill at 20:1. | 0 No particular strength here. |
| Next.js or React | −1 Lives on Cloudflare Workers; an app on Vercel has to call it over HTTP. | +1 Vercel's own Redis option: Vercel KV is no longer offered and existing stores moved to Upstash. |
| traffic comes in viral spikes | 0 No particular strength here. | +2 Pay as you go absorbs a spike at $0.20 per 100K commands, under a budget cap you set. |
| votes, scores, leaderboards or streaks (many writes to the same numbers) | +2 One object per question counts votes with strong consistency in its own SQLite storage. | +3 Atomic INCR and HINCRBY for votes, sorted sets for leaderboards, expiring keys for streaks, up to 10,000 commands a second on every plan. |
| global low latency | +2 Runs on Cloudflare's network beside your Workers. | +1 HTTP client works from edge runtimes, including Cloudflare Workers. |
Sources: Cloudflare Durable Objects pricing (read November 9, 2026), Upstash Redis pricing (read November 9, 2026). No vendor pays for placement.