본문으로 건너뛰기
cccskills
무료GitHub에 공개

cloudflare-workers-expert

Expert guide for Cloudflare Workers ecosystem — Workers, D1 (SQLite at edge), KV, R2 (S3-compatible storage), Queues, Durable Objects, Hyperdrive, and Workers AI / Panduan ahli ekosistem Cloudflare Workers — Workers, D1, KV, R2, Queues, Durable Objects, Hyperdrive, dan Workers AI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md11.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Cloudflare Workers Ecosystem Expert (2026 Edition)

English | Bahasa Indonesia


<a name="english"></a>

English

Orchestration & Integration

Connects with: brainstorming, zero-to-prod-orchestrator, js-backend-expert, database-orm-expert, api-design-expert, authentication-identity-expert, wasm-edge-computing-expert, ci-cd-devops-architect, cloud-hosting-expert, session-memory-manager.

Description

Expert guide for building full-stack edge applications using the Cloudflare Workers ecosystem. Covers Workers runtime, D1 (SQLite at edge), KV (key-value store), R2 (S3-compatible object storage), Queues (message queues), Durable Objects (stateful edge), Hyperdrive (database connection pooling), Workers AI (inference at edge), and Wrangler CLI for development and deployment.

Trigger Conditions

  • Building serverless edge applications on Cloudflare Workers.
  • Using D1 as an edge SQLite database.
  • Storing files with R2 (S3-compatible, zero egress fees).
  • Implementing KV for distributed key-value caching.
  • Building stateful applications with Durable Objects.
  • Setting up Queues for async job processing at the edge.
  • Connecting to external databases via Hyperdrive connection pooling.
  • Running AI inference at the edge with Workers AI.
  • Deploying with Wrangler CLI and wrangler.toml configuration.
  • Using Hono v4 as the web framework on Workers.

What's New in 2026

Cloudflare Workers — Platform Updates

  • D1 GA: SQLite at the edge — fully production-ready with point-in-time recovery, read replicas, and up to 10GB databases.
  • Queues GA: Reliable message queues for async processing, dead letter queues, and batch consumption.
  • Hyperdrive GA: Connection pooling for PostgreSQL, MySQL — eliminates cold connection latency from Workers.
  • Workers AI Stable: Run LLM inference (Llama 3, Mistral, embedding models) at the edge with zero cold starts.
  • Durable Objects Hibernation: Cost-effective stateful edge — objects hibernate when idle, wake instantly on request.
  • Workers Static Assets: Serve static files directly from Workers without separate Pages deployment.
  • Node.js Compatibility Mode: Import Node.js built-in modules (node:crypto, node:buffer, node:streams) directly in Workers.

Core Architecture Patterns

1. Project Setup (Wrangler + Hono)

# Create new Workers project with Hono
npm create cloudflare@latest my-app -- --framework=hono
cd my-app

# wrangler.toml configuration
# wrangler.toml
name = "my-app"
compatibility_date = "2026-10-01"
compatibility_flags = ["nodejs_compat_v2"]

# D1 Database
[[d1_databases]]
binding = "DB"
database_name = "my-app-db"
database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# KV Namespace
[[kv_namespaces]]
binding = "CACHE"
id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# R2 Bucket
[[r2_buckets]]
binding = "STORAGE"
bucket_name = "my-app-assets"

# Queue Producer
[[queues.producers]]
queue = "email-queue"
binding = "EMAIL_QUEUE"

# Queue Consumer
[[queues.consumers]]
queue = "email-queue"
max_batch_size = 10
max_batch_timeout = 30

# Durable Object
[[durable_objects.bindings]]
name = "RATE_LIMITER"
class_name = "RateLimiter"

[[migrations]]
tag = "v1"
new_classes = ["RateLimiter"]

# Hyperdrive (PostgreSQL connection pooling)
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Workers AI
[ai]
binding = "AI"

2. Hono Application on Workers

import { Hono } from 'hono';
import { cors } from 'hono/cors';
import { bearerAuth } from 'hono/bearer-auth';

type Bindings = {
  DB: D1Database;
  CACHE: KVNamespace;
  STORAGE: R2Bucket;
  EMAIL_QUEUE: Queue;
  AI: Ai;
  HYPERDRIVE: Hyperdrive;
};

const app = new Hono<{ Bindings: Bindings }>();

app.use('*', cors());

// D1 SQLite query
app.get('/api/products', async (c) => {
  const { results } = await c.env.DB.prepare(
    'SELECT id, name, price FROM products WHERE active = 1 ORDER BY created_at DESC LIMIT 50'
  ).all();
  return c.json(results);
});

// KV cache-aside pattern
app.get('/api/config/:key', async (c) => {
  const key = c.req.param('key');
  const cached = await c.env.CACHE.get(key, 'json');
  if (cached) return c.json(cached);

  const { results } = await c.env.DB.prepare(
    'SELECT value FROM config WHERE key = ?'
  ).bind(key).all();
  
  if (results.length > 0) {
    await c.env.CACHE.put(key, JSON.stringify(results[0]), { expirationTtl: 3600 });
    return c.json(results[0]);
  }
  return c.notFound();
});

// R2 file upload
app.post('/api/upload', async (c) => {
  const formData = await c.req.formData();
  const file = formData.get('file') as File;
  const key = `uploads/${Date.now()}-${file.name}`;
  
  await c.env.STORAGE.put(key, file.stream(), {
    httpMetadata: { contentType: file.type },
  });
  
  return c.json({ key, url: `/files/${key}` });
});

// Queue producer — send async job
app.post('/api/send-email', async (c) => {
  const body = await c.req.json();
  await c.env.EMAIL_QUEUE.send({
    to: body.email,
    subject: body.subject,
    template: body.template,
  });
  return c.json({ status: 'queued' });
});

// Workers AI — text generation
app.post('/api/ai/generate', async (c) => {
  const { prompt } = await c.req.json();
  const response = await c.env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
    messages: [{ role: 'user', content: prompt }],
  });
  return c.json(response);
});

export default app;

// Queue consumer handler
export default {
  ...app,
  async queue(batch: MessageBatch, env: Bindings): Promise<void> {
    for (const message of batch.messages) {
      const { to, subject, template } = message.body as EmailJob;
      await sendEmail(to, subject, template); // your email sending logic
      message.ack();
    }
  },
};

3. D1 Migrations

# Create migration
wrangler d1 migrations create my-app-db create_products

# Write SQL migration
# migrations/0001_create_products.sql
CREATE TABLE products (
  id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
  name TEXT NOT NULL,
  price REAL NOT NULL CHECK(price >= 0),
  description TEXT DEFAULT '',
  active INTEGER DEFAULT 1,
  created_at TEXT DEFAULT (datetime('now')),
  updated_at TEXT DEFAULT (datetime('now'))
);

CREATE INDEX idx_products_active ON products(active);
CREATE INDEX idx_products_created ON products(created_at DESC);
# Apply migration
wrangler d1 migrations apply my-app-db

4. Durable Objects (Stateful Edge)

export class RateLimiter implements DurableObject {
  private requests: number[] = [];
  private readonly limit = 100;
  private readonly windowMs = 60_000;

  constructor(private state: DurableObjectState, private env: Bindings) {}

  async fetch(request: Request): Promise<Response> {
    const now = Date.now();
    this.requests = this.requests.filter(t => now - t < this.windowMs);
    
    if (this.requests.length >= this.limit) {
      return new Response('Rate limit exceeded', { status: 429 });
    }
    
    this.requests.push(now);
    await this.state.storage.put('requests', this.requests);
    
    return new Response('OK', {
      headers: {
        'X-RateLimit-Remaining': String(this.limit - this.requests.length),
        'X-RateLimit-Limit': String(this.limit),
      },
    });
  }
}

5. Hyperdrive (External Database Connection)

import { Client } from 'pg';

app.get('/api/users', async (c) => {
  const client = new Client({ connectionString: c.env.HYPERDRIVE.connectionString });
  await client.connect();
  
  const { rows } = await client.query('SELECT id, email, name FROM users LIMIT 100');
  await client.end();
  
  return c.json(rows);
});

Performance Best Practices

  1. Use D1 for read-heavy workloads — SQLite at edge with automatic read replicas.
  2. KV for hot cache — Sub-millisecond reads for configuration, feature flags, and session data.
  3. R2 for assets — Zero egress fees, S3-compatible API.
  4. Queues for async work — Decouple request handling from background processing.
  5. Hyperdrive for external DBs — Connection pooling eliminates cold connection latency.
  6. Workers AI for inference — Run models at edge without managing GPU infrastructure.
  7. Use waitUntil() — For fire-and-forget operations (logging, analytics) after response is sent.

Anti-Patterns to Avoid

  1. Storing large blobs in KV — Use R2 for files >25MB. KV is for small values (<25MB).
  2. Opening new DB connections per request without Hyperdrive — Cold connections add 50-200ms latency.
  3. Not using prepared statements with D1 — Always use .prepare().bind() to prevent SQL injection.
  4. Synchronous heavy computation — Workers have a CPU time limit (10-30ms for free, 30s for paid). Offload to Queues.
  5. Ignoring wrangler dev --remote — Use remote mode to test D1, R2, and KV with real data.

<a name="bahasa-indonesia"></a>

Bahasa Indonesia

Integrasi Orkestrasi

Terhubung dengan: brainstorming, zero-to-prod-orchestrator, js-backend-expert, database-orm-expert, api-design-expert, authentication-identity-expert, wasm-edge-computing-expert, ci-cd-devops-architect, cloud-hosting-expert, session-memory-manager.

Deskripsi

Panduan ahli untuk membangun aplikasi full-stack edge menggunakan ekosistem Cloudflare Workers. Mencakup runtime Workers, D1 (SQLite di edge), KV (key-value store), R2 (object storage kompatibel S3), Queues (antrean pesan), Durable Objects (stateful edge), Hyperdrive (connection pooling database), Workers AI (inferensi di edge), dan Wrangler CLI untuk pengembangan dan deployment.

Kondisi Pemicu

  • Membangun aplikasi edge serverless di Cloudflare Workers.
  • Menggunakan D1 sebagai database SQLite di edge.
  • Menyimpan file dengan R2 (kompatibel S3, tanpa biaya egress).
  • Mengimplementasikan KV untuk caching key-value terdistribusi.
  • Membangun aplikasi stateful dengan Durable Objects.
  • Menyiapkan Queues untuk pemrosesan job async di edge.

Pola Arsitektur Inti

1. Ekosistem Cloudflare Workers

LayananFungsiAnalogi
WorkersRuntime serverless di edge (V8 isolates)AWS Lambda@Edge
D1Database SQLite di edgePlanetScale / Turso
KVKey-value store terdistribusiRedis (read-heavy)
R2Object storage (S3-compatible)AWS S3 (tanpa biaya egress)
QueuesAntrean pesanAWS SQS / BullMQ
Durable ObjectsState persisten di edgeStateful actors
HyperdriveConnection pooling ke DB eksternalPgBouncer di edge
Workers AIInferensi model AI di edgeReplicate / Together AI

2. Praktik Terbaik

  • Gunakan D1 untuk workload read-heavy di edge.
  • Gunakan KV untuk cache panas (konfigurasi, feature flags, sesi).
  • Gunakan R2 untuk aset (tanpa biaya egress, API kompatibel S3).
  • Gunakan Queues untuk pekerjaan async (email, notifikasi, pemrosesan gambar).
  • Gunakan Hyperdrive untuk koneksi ke database PostgreSQL/MySQL eksternal.
  • Gunakan waitUntil() untuk operasi fire-and-forget (logging, analitik) setelah respons dikirim.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1052026년 10월 20일 업데이트

Expert guide for intelligent model cascading and routing — complexity-scored task routing from Flash/Haiku to Sonnet/Opus/Astra, dynamic escalation with quality gates, 40-60% token cost reduction while maintaining output quality / Panduan ahli untuk kaskade dan routing model cerdas — routing tugas berbasis skor kompleksitas dari Flash/Haiku ke Sonnet/Opus/Astra, eskalasi dinamis dengan gerbang kualitas, pengurangan biaya token 40-60% dengan kualitas output terjaga.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1052026년 10월 20일 업데이트

Expert guide for Affective Computing, emotional AI, and real-time sentiment analysis through native multimodal tokens (voice intonation and facial micro-expressions) / Panduan ahli komputasi afektif, AI emosional, dan analisis sentimen real-time melalui token multimodal native.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1052026년 10월 20일 업데이트

Expert guide for AI-assisted coding workflows — agentic code generation, multi-agent code swarms, self-healing CI/CD, automated PR review, spec-to-code pipelines, codebase knowledge graphs, and human-in-the-loop approval gates / Panduan ahli untuk workflow pengkodean berbasis AI — generasi kode agentic, code swarm multi-agen, CI/CD self-healing, review PR otomatis, pipeline spec-to-code, knowledge graph codebase, dan gate persetujuan human-in-the-loop.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1052026년 10월 20일 업데이트

Expert guide for autonomous Machine-to-Machine (M2M) agent settlement, dual-rail fiat & stablecoin micro-clearing, dynamic budget envelopes, and cryptographic agent invoicing / Panduan ahli settlement otonom antar-agen (M2M), kliring mikro dual-rail fiat & stablecoin, pagu anggaran dinamis, dan penagihan agen kriptografis.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1052026년 10월 20일 업데이트

Expert guide for long-term episodic memory integration (Mem0 v2, Letta/MemGPT, Zep v2), memory tier architecture, pgvector HNSW storage, and unified context management for autonomous AI agents / Panduan ahli untuk integrasi memori episodik jangka panjang (Mem0 v2, Letta/MemGPT, Zep v2), arsitektur tier memori, penyimpanan pgvector HNSW, dan manajemen konteks terpadu untuk agen AI otonom.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

roedyrustam/vibes-plug1052026년 10월 20일 업데이트

roedyrustam의 스킬 모두 보기

이 스킬의 문제 신고