v1.0 Free tier June 2026

Cloudflare Edge Ecosystem

A practical field guide to Workers, Durable Objects, KV, R2, D1, Queues, Hyperdrive — how they fit together, what each is best at, and what you can build with the free tier.

Products Architecture Projects Resources

โšก Products — What Does What

Workers

Serverless functions at the edge

๐Ÿ›ธ
  • โ€ข Run JS/Wasm at Cloudflare's edge (300+ locations)
  • โ€ข Sub-ms cold starts, 128 MB memory
  • โ€ข 100k requests/day free

Best for: API endpoints, middleware, webhooks, auth, URL rewrites

Durable Objects

Strongly-consistent state + coordination

๐Ÿง 
  • โ€ข Global singleton = one instance per namespace (or sharded)
  • โ€ข Real-time coordination: WebSocket sync, presence, locks
  • โ€ข Backed by a single-writer storage engine

Best for: collaborative state, game rooms, stock tickers, counters

Workers KV

Global, low-latency key-value store

๐Ÿ—„๏ธ
  • โ€ข Eventual consistency, cached at edge
  • โ€ข 1 GB storage, 1k writes/day, 100k reads/day free
  • โ€ข Values up to 25 MB, read in <10ms from cache

Best for: config, feature flags, redirects, static assets

R2

S3-compatible object storage

๐Ÿ“ฆ
  • โ€ข Zero egress fees โ€” pay only for storage + operations
  • โ€ข 10 GB storage, 1M reads/month, 1M writes/month free
  • โ€ข Public buckets, presigned URLs, S3 API compatible

Best for: user uploads, backups, media files, log archives

D1

Serverless SQLite database

๐Ÿ“Š
  • โ€ข SQLite-compatible, read replicas at the edge
  • โ€ข 5 GB storage, 5M rows read/mo, 100k writes/mo free
  • โ€ข Migrations CLI, time-travel restore, HTTP API

Best for: relational data, user profiles, sessions, analytics

Queues

Message broker for async workloads

๐Ÿ“จ
  • โ€ข At-least-once delivery, batching, retries with backoff
  • โ€ข 1M operations/month free
  • โ€ข Consumers are Workers โ€” your code handles the batch

Best for: background jobs, webhook delivery, decoupling services

Hyperdrive

Connection-pooled database proxy

๐Ÿš€
  • โ€ข Connection pooling for Postgres/MySQL from Workers
  • โ€ข No open connections = no overhead between requests
  • โ€ข Caches query results at the edge

Best for: connecting Workers to an existing database

๐Ÿ—๏ธ Architecture โ€” How It All Connects

graph TD User(("๐ŸŒ User")) subgraph CF[Cloudflare Edge] Workers[Workers
API / Middleware] KV[Workers KV
Global Cache] DO[Durable Objects
Coordinated State] Q[Queues
Message Broker] end subgraph Storage[Cloudflare Storage] R2[R2
Object Storage] D1[D1
SQLite Database] end subgraph External[External] PG[(Your Database)] Webhook[Webhook Endpoint] end User --> Workers Workers <--> KV Workers <--> DO Workers <--> D1 Workers <--> R2 Workers --> Q Q --> Workers Workers -- Hyperdrive --> PG Workers -- fetch() --> Webhook
Request path: User โ†’ Worker โ†’ (KV/D1/R2/DO) โ†’ Response
Async path: Worker โ†’ Queue โ†’ Worker โ†’ webhook/DB
External DB: Worker โ†’ Hyperdrive โ†’ Your database

๐Ÿ” Common Patterns

Upload โ†’ Transcode โ†’ Deliver

User uploads media, async pipeline processes it, result served from edge.
R2 (upload) โ†’ Worker โ†’ Queue โ†’ Worker โ†’ fetch() transcode server โ†’ R2 (output)

Real-time Collaboration

DO holds authoritative state, Workers bridge WebSocket connections.
DO (single-writer) โŸท Workers (broadcast) โŸท WebSocket clients

Static Site + API

Pages on the edge, Workers handle dynamic routes, D1 for data.
Cloudflare Pages (static) โ†’ Workers (API routes) โ†’ D1 (data)

Webhook Firehose โ†’ Buffer โ†’ Store

Queue buffers incoming webhooks, Workers batch-write to D1/R2.
Webhooks โ†’ Worker โ†’ Queue โ†’ Worker (batch) โ†’ D1

๐Ÿš€ Homelab Project Ideas

๐Ÿ“ก

Server Health Dashboard

Workers ping your home lab endpoints every 5 minutes, push results to D1. Frontend reads from D1 via Workers. Alert on failure.

Workers D1 Cron Triggers
๐Ÿ—‚๏ธ

Personal File Share

R2 bucket with a Worker that generates upload URLs. D1 tracks files. DO manages share links with expiry.

R2 D1 DO Workers
๐Ÿ“ฐ

News/Feed Aggregator

Cron Worker fetches RSS feeds, stores articles in D1. Workers API serves your personalized digest. R2 caches article images.

Workers D1 R2 Cron Triggers
๐Ÿ“

WebSocket Game Lobby

DO manages game state. Workers handle WebSocket connections. D1 stores leaderboards. Queue processes deferred scoring.

DO Workers D1 Queues

๐Ÿ“š Matt Pocock โ€” Cloudflare Learning Resources

๐Ÿง‘โ€๐Ÿซ Matt's paid workshop
โ€ข
Making TypeScript Better for Cloudflare Workers on AI

Improving the DX for TypeScript developers writing Workers. Covers typed bindings, environment variables, and RPC-style DO calls.

โ€ข
TypeScript + D1: Type-Safe SQL

Using D1's type inference for end-to-end type safety from database to HTTP response. No ORM needed.

โ€ข
Building with Durable Objects & RPC

DO RPC makes calling Durable Objects feel like calling local functions. Matt's tutorial covers the DO lifecycle, alarms, and storage.

๐ŸŽ Free Tier Limits at a Glance

Product Free Tier When to Upgrade
Workers100k req/dayDeploy a busy API or cron-heavy app
KV1 GB storage, 1k writes/dayStore user sessions or config at scale
R210 GB storage, 1M ops/monthStore videos or large file uploads
D15 GB, 5M rows read/moProduction app with real traffic
Queues1M operations/monthHeavy background job processing
DO1M req/day, 5 GB storageReal-time apps with millions of connections

๐Ÿ“‹ Quick Reference โ€” When to Use What

I need to...

โ†’ Run serverless functions โ†’ Workers
โ†’ Store user sessions โ†’ KV
โ†’ Store files/users upload โ†’ R2
โ†’ Query relational data โ†’ D1
โ†’ Coordinate real-time state โ†’ DO
โ†’ Decouple async work โ†’ Queues
โ†’ Connect to my existing DB โ†’ Hyperdrive
โ†’ Build a full app โ†’ Workers + D1 + R2