Cloudflare Workers
Overview
Cloudflare Workers enables building and deploying applications at the edge with sub-millisecond cold starts. The platform leverages the Workers runtime alongside storage services like KV, D1, R2, Durable Objects, and Queues to build globally distributed, low-latency applications.
Instructions
- When asked to create a Worker, scaffold with
wrangler init using ES Module syntax (export default { fetch }) and set compatibility_date in wrangler.toml.
- When configuring storage, recommend KV for read-heavy key-value caching, D1 for relational data with SQL, R2 for S3-compatible object storage with zero egress fees, and Durable Objects for strongly consistent state coordination.
- When setting up local development, use
wrangler dev with hot reload and local KV/D1/R2 simulation.
- When deploying, use
wrangler deploy and configure routes, bindings, and build settings in wrangler.toml.
- When managing secrets, use
wrangler secret put KEY_NAME and type bindings with an Env interface.
- When optimizing performance, leverage the Cache API (
caches.default), Smart Placement, streaming responses with TransformStream, and HTMLRewriter for HTML transformation.
- When handling background work, use
ctx.waitUntil() for fire-and-forget async tasks like analytics or logging.
- When building AI features, use Workers AI for edge inference, AI Gateway for multi-provider management, and Vectorize for RAG pipelines.
Examples
Example 1: Create an edge API with KV caching
User request: "Set up a Cloudflare Worker that serves cached API responses from KV"
Actions:
- Scaffold a new Worker project with
wrangler init
- Configure KV namespace binding in
wrangler.toml
- Implement fetch handler with KV read/write and cache-control headers
- Test locally with
wrangler dev
Output: A Worker that checks KV for cached data, falls back to origin, and stores results in KV with TTL.
Example 2: Deploy a scheduled data sync Worker
User request: "Build a Worker that runs on a schedule to sync data from an external API into D1"
Actions:
- Configure Cron Trigger in
wrangler.toml
- Create D1 database and migration with schema
- Implement
scheduled() handler that fetches external data and inserts into D1
- Use
ctx.waitUntil() for non-blocking cleanup tasks
Output: A Worker with cron-triggered data synchronization and D1 storage.
Guidelines
- Always set
compatibility_date in wrangler.toml to pin runtime behavior.
- Use ES Module syntax (
export default) over Service Worker syntax.
- Type all environment bindings with an
Env interface for type safety.
- Handle errors gracefully with proper HTTP status codes instead of unhandled exceptions.
- Use
ctx.waitUntil() for fire-and-forget async work that should not block the response.
- Prefer D1 over KV for relational data; use KV for simple key-value caching.
- Set appropriate
Cache-Control headers and leverage Cloudflare's edge cache.
1---2name: cloudflare-workers3description: Cloudflare Workers4---5# Cloudflare Workers67## Overview89Cloudflare Workers enables building and deploying applications at the edge with sub-millisecond cold starts. The platform leverages the Workers runtime alongside storage services like KV, D1, R2, Durable Objects, and Queues to build globally distributed, low-latency applications.1011## Instructions1213- When asked to create a Worker, scaffold with `wrangler init` using ES Module syntax (`export default { fetch }`) and set `compatibility_date` in `wrangler.toml`.14- When configuring storage, recommend KV for read-heavy key-value caching, D1 for relational data with SQL, R2 for S3-compatible object storage with zero egress fees, and Durable Objects for strongly consistent state coordination.15- When setting up local development, use `wrangler dev` with hot reload and local KV/D1/R2 simulation.16- When deploying, use `wrangler deploy` and configure routes, bindings, and build settings in `wrangler.toml`.17- When managing secrets, use `wrangler secret put KEY_NAME` and type bindings with an `Env` interface.18- When optimizing performance, leverage the Cache API (`caches.default`), Smart Placement, streaming responses with `TransformStream`, and HTMLRewriter for HTML transformation.19- When handling background work, use `ctx.waitUntil()` for fire-and-forget async tasks like analytics or logging.20- When building AI features, use Workers AI for edge inference, AI Gateway for multi-provider management, and Vectorize for RAG pipelines.2122## Examples2324### Example 1: Create an edge API with KV caching2526**User request:** "Set up a Cloudflare Worker that serves cached API responses from KV"2728**Actions:**291. Scaffold a new Worker project with `wrangler init`302. Configure KV namespace binding in `wrangler.toml`313. Implement fetch handler with KV read/write and cache-control headers324. Test locally with `wrangler dev`3334**Output:** A Worker that checks KV for cached data, falls back to origin, and stores results in KV with TTL.3536### Example 2: Deploy a scheduled data sync Worker3738**User request:** "Build a Worker that runs on a schedule to sync data from an external API into D1"3940**Actions:**411. Configure Cron Trigger in `wrangler.toml`422. Create D1 database and migration with schema433. Implement `scheduled()` handler that fetches external data and inserts into D1444. Use `ctx.waitUntil()` for non-blocking cleanup tasks4546**Output:** A Worker with cron-triggered data synchronization and D1 storage.4748## Guidelines4950- Always set `compatibility_date` in `wrangler.toml` to pin runtime behavior.51- Use ES Module syntax (`export default`) over Service Worker syntax.52- Type all environment bindings with an `Env` interface for type safety.53- Handle errors gracefully with proper HTTP status codes instead of unhandled exceptions.54- Use `ctx.waitUntil()` for fire-and-forget async work that should not block the response.55- Prefer D1 over KV for relational data; use KV for simple key-value caching.56- Set appropriate `Cache-Control` headers and leverage Cloudflare's edge cache.