Files
2026-01-30 03:04:10 +00:00
..
2026-01-30 03:04:10 +00:00
2026-01-30 03:04:10 +00:00
2026-01-30 03:04:10 +00:00
2026-01-30 03:04:10 +00:00
2026-01-30 03:04:10 +00:00
2026-01-30 03:04:10 +00:00

Cloudflare Workers

Expert guidance for building, deploying, and optimizing Cloudflare Workers applications.

Overview

Cloudflare Workers run on V8 isolates (NOT containers/VMs):

  • Extremely fast cold starts (< 1ms)
  • Global deployment across 300+ locations
  • Web standards compliant (fetch, URL, Headers, Request, Response)
  • Support JS/TS, Python, Rust, and WebAssembly

Key principle: Workers use web platform APIs wherever possible for portability.

export default {
  async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
    return new Response('Hello World!');
  },
};

Handler parameters:

  • request: Incoming HTTP request (standard Request object)
  • env: Environment bindings (KV, D1, R2, secrets, vars)
  • ctx: Execution context (waitUntil, passThroughOnException)

Essential Commands

npx wrangler dev                    # Local dev
npx wrangler dev --remote           # Remote dev (actual resources)
npx wrangler deploy                 # Production
npx wrangler deploy --env staging   # Specific environment
npx wrangler tail                   # Stream logs
npx wrangler secret put API_KEY     # Set secret

When to Use Workers

  • API endpoints at the edge
  • Request/response transformation
  • Authentication/authorization layers
  • Static asset optimization
  • A/B testing and feature flags
  • Rate limiting and security
  • Proxy/routing logic
  • WebSocket applications

Quick Start

npm create cloudflare@latest my-worker -- --type hello-world
cd my-worker
npx wrangler dev

Handler Signatures

// HTTP requests
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response>

// Cron triggers
async scheduled(event: ScheduledEvent, env: Env, ctx: ExecutionContext): Promise<void>

// Queue consumer
async queue(batch: MessageBatch, env: Env, ctx: ExecutionContext): Promise<void>

// Tail consumer
async tail(events: TraceItem[], env: Env, ctx: ExecutionContext): Promise<void>

Resources

Docs: https://developers.cloudflare.com/workers/
Examples: https://developers.cloudflare.com/workers/examples/
Runtime APIs: https://developers.cloudflare.com/workers/runtime-apis/

In This Reference

  • Configuration - wrangler.jsonc setup, bindings, environments
  • API - Runtime APIs, bindings, execution context
  • Patterns - Common workflows, testing, optimization
  • Frameworks - Hono, routing, validation
  • Gotchas - Common issues, limits, troubleshooting

Reading Order

Task Start With Then Read
First Worker README → Configuration → API Patterns
Add framework Frameworks Configuration (bindings)
Add storage/bindings Configuration → API (binding usage) See Also links
Debug issues Gotchas API (specific binding docs)
Production optimization Patterns API (caching, streaming)
Type safety Configuration (TypeScript) Frameworks (Hono typing)

See Also