Workers KV
What it is
Think of a giant dictionary: you look up a word (the key) and instantly get its definition (the value). Workers KV is a global KV (key-value) store built that way and designed for reads. You write a value once, and Cloudflare copies it across its network so that any Worker, anywhere, can read it with very low latency (almost no waiting). It's eventually consistent: after a write, the new value becomes visible everywhere within a short window. That short delay is the trade-off for being fast and global.
Strengths
- Extremely fast, low-latency reads from anywhere on the .
- Globally replicated automatically — no regions to manage.
- Simple (Application Programming Interface — the small set of commands you call):
get,put,delete,list, with optional TTLs (Time To Live — how long a value is kept before it auto-expires). - Cheap at scale for read-heavy workloads; usable free tier.
- Binds straight into Workers and Pages Functions.
Trade-offs
- Eventually consistent — not for data that must be correct the instant after a write.
- Writes are slower and rate-limited compared to reads.
- Value size is capped (around 25 MB); it's not bulk storage like R2.
- No queries or relations — it's strictly key to value.
When to use it
Use KV for configuration, feature flags, cached API responses, routing tables, lookups, and any read-mostly data that you can tolerate being a few seconds stale.
Vibe coding fit
KV is an easy win for an adding caching or config to a Worker: one binding, then get/put. Be explicit that it's eventually consistent, so the agent doesn't reach for KV where it needs read-after-write guarantees — point it at D1 or a Durable Object for that. The snippet binds a namespace and seeds a value.
# wrangler.toml
[[kv_namespaces]]
binding = "CONFIG"
id = "your-kv-namespace-id"
npx wrangler kv namespace create CONFIG
npx wrangler kv key put --binding=CONFIG "theme" "dark"