Panduan Cloudflare Workers untuk Backend Serverless Modern
Pelajari arsitektur V8 Isolates, skema harga, dan cara kerja Cloudflare Workers di edge.

Cloudflare Workers adalah platform komputasi serverless berbasis edge yang mengeksekusi kode JavaScript, TypeScript, dan WebAssembly langsung di ratusan jaringan Point of Presence (PoP) global Cloudflare. Berbekal mesin V8 Isolates dan runtime workerd, platform ini memangkas waktu cold start hingga di bawah 5 milidetik tanpa beban kontainer atau mesin virtual.
Saat kita membangun aplikasi web, latensi server sering menjadi keluhan utama. Menaruh satu server terpusat di Singapura atau Jakarta terkadang belum cukup cepat ketika pengguna mengakses dari jaringan seluler yang tidak stabil di berbagai daerah. Menjalankan logika backend langsung di titik jaringan terdekat dengan pengguna mengubah cara kita merancang arsitektur backend modern berbasis edge serverless.
Artikel ini membedah cara kerja arsitektur V8 Isolates, perhitungan biaya aktual antara waktu aktif CPU dan waktu tunggu I/O, hingga langkah praktis membangun layanan inferensi AI di edge menggunakan TypeScript.
Mengapa Arsitektur Cloudflare Workers Berbeda dari Serverless Tradisional
Layanan serverless generasi pertama seperti AWS Lambda bekerja dengan cara menyalakan kontainer mikro atau mesin virtual (VM) setiap kali ada permintaan masuk. Ketika fungsi lama tidak dipanggil, penyedia layanan mematikan kontainer tersebut. Saat permintaan baru datang, server butuh waktu puluhan hingga ratusan milidetik untuk menyiapkan ulang lingkungan eksekusi. Fenomena ini kita kenal sebagai cold start.

Cloudflare mengambil jalur rekayasa yang berbeda. Alih-alih menyalakan kontainer sistem operasi untuk setiap fungsi, Cloudflare Workers menggunakan V8 Isolates melalui runtime sumber terbuka bernama workerd.
V8 adalah mesin JavaScript yang sama dengan yang berjalan di dalam peramban Google Chrome. Satu proses runtime V8 dapat menjalankan ribuan isolate secara bersamaan. Setiap isolate memiliki konteks eksekusi dan ruang memori yang terisolasi penuh, tetapi tetap berbagi mesin dasar yang sudah menyala di memori.
Pendekatan ini memberikan tiga keuntungan nyata di lingkungan produksi:
- Cold start mendekati nol: Inisialisasi satu isolate baru hanya memakan waktu kurang dari 5 milidetik.
- Konsumsi memori sangat hemat: Tidak ada duplikasi sistem operasi atau runtime Node.js penuh di setiap instansiasi fungsi.
- Penyebaran otomatis tanpa region: Anda tidak perlu memilih region server tertentu. Kode otomatis disebarkan ke seluruh titik jaringan global Cloudflare dan dieksekusi di lokasi fisik terdekat dari pengguna.
Standar Web API dan Interoperabilitas WinterCG
Banyak developer terkejut saat mengimpor modul bawaan Node.js seperti fs atau child_process di dalam Worker dan mendapati kode mereka gagal berjalan. Hal ini terjadi karena runtime workerd tidak dibangun di atas arsitektur internal Node.js konvensional.
Sebagai gantinya, platform ini mematuhi spesifikasi dari Web-interoperable Runtimes Community Group (WinterCG). Anda menulis kode backend menggunakan standar Web API murni yang sama dengan peramban modern: fetch, Request, Response, TransformStream, hingga Crypto.
Pendekatan berbasis standar web ini membebaskan kode Anda dari ketergantungan pada satu vendor (vendor lock-in). Logika bisnis yang ditulis mengikuti standar WinterCG dapat diuji secara lokal di workerd, dipindahkan ke ekosistem edge lain, maupun diintegrasikan langsung ke dalam arsitektur backend dan integrasi modern Nuxt.
Jika Anda tetap membutuhkan pustaka standar Node.js seperti node:crypto atau node:buffer, aktifkan flag nodejs_compat di berkas konfigurasi Wrangler. Selain itu, batas ukuran bundel Worker kini mencapai 64 MiB (uncompressed) di semua paket (Free maupun Paid), sehingga Anda leluasa menyertakan dependensi modern yang lebih besar.
Bedah Cloudflare Workers Pricing: Paket Free vs Paid
Memahami skema Cloudflare Workers pricing secara menyeluruh akan menyelamatkan tagihan bulanan Anda sekaligus mencegah aplikasi tiba-tiba berhenti melayani pengguna saat trafik melonjak. Rahasia penghematan biaya sesungguhnya terletak pada cara Cloudflare memisahkan waktu tunggu jaringan dari waktu kerja prosesor.
Berikut perbandingan kuota dan batasan teknis antara paket Cloudflare Workers Free dan paket berbayar (Paid):
Ekonomi I/O-Bound vs CPU-Bound (Mekanisme CPU-Time Billing)
Di platform serverless konvensional, penyedia menagih biaya berdasarkan wall-clock time (durasi total sejak fungsi mulai berjalan hingga selesai). Jika fungsi Anda memanggil API pihak ketiga yang lambat selama 4 detik, Anda tetap membayar penuh waktu tunggu selama 4 detik tersebut.
Cloudflare menghapus inefisiensi ini dengan menagih biaya berdasarkan CPU-time murni (active compute). Waktu tunggu Input/Output (I/O) saat Worker menunggu balasan fetch() dari server asal (origin), membaca data dari Workers KV, atau menjalankan kueri SQL ke database D1 tidak dikenakan biaya CPU-time.
Perbedaan ini menciptakan keekonomian yang menarik bagi arsitek perangkat lunak:
- Skenario I/O-Bound (Sangat Hemat): Jika Worker bertindak sebagai API Gateway atau reverse proxy yang meneruskan permintaan ke upstream dan menunggu respons, pemakaian CPU aktualnya sangat kecil. Dengan paket Paid $5 per bulan, Anda dapat menangani jutaan permintaan dengan biaya minimal karena waktu tunggu respons upstream gratis.
- Skenario CPU-Bound (Perlu Perhatian): Sebaliknya, jika Worker melakukan manipulasi gambar, kriptografi berat, atau serialisasi JSON raksasa, prosesor akan bekerja keras. Operasi semacam ini mudah menabrak batas 10 milidetik di paket Free, atau melonjakkan tagihan CPU-milidetik di paket Paid.
Mengenal Cloudflare Workers AI dan Keamanan Binding
Menjalankan model kecerdasan buatan biasanya menuntut kita menyewa server GPU mahal atau berlangganan API eksternal yang jauh dari pengguna. Melalui Cloudflare Workers AI, Cloudflare menyediakan akses inferensi model langsung di jaringan edge mereka.
Model penagihan layanan ini dihitung berdasarkan satuan Neurons. Setiap akun mendapatkan kuota gratis sebesar 10.000 neurons per hari. Jika pemakaian melampaui batas harian tersebut, kelebihannya dikenakan biaya sekitar $0,011 per 1.000 neurons.
Kapan Anda Membutuhkan Cloudflare Workers AI API Key?
Salah satu kebingungan yang sering dialami developer adalah cara menghubungkan kode Worker dengan model AI. Banyak yang mencari menu pembuatan Cloudflare Workers AI API key di dasbor, lalu menyimpannya di berkas .env layaknya memanggil API eksternal.
Cloudflare menerapkan arsitektur capabilities-based security yang disebut Bindings. Cara kerjanya terbagi menjadi dua skenario:
- Akses Internal dari Dalam Worker (Tanpa API Key): Jika kode dieksekusi di dalam Worker, Anda tidak membutuhkan API key eksternal. Anda cukup mendeklarasikan AI Binding pada konfigurasi Wrangler. Model inferensi langsung diakses melalui
env.AI.run(). Arsitektur ini mengeliminasi risiko kebocoran token pada pipeline CI/CD karena kita tidak perlu mengelola rotasi secret. - Akses Eksternal dari Luar Cloudflare (Wajib API Key): Anda baru memerlukan Cloudflare Workers AI API key (berupa Token API Cloudflare dengan izin
Account > Workers AI > Read) apabila memanggil model AI dari luar lingkungan Workers. Contohnya saat mengakses model dari backend Express di VPS, aplikasi Flutter, atau skrip otomasi Python yang dipasangkan dengan AI Gateway.
Langkah Praktis Membangun API Edge Streaming AI
Mari kita terapkan konsep di atas ke dalam proyek nyata. Kita akan membuat endpoint API berbahasa TypeScript yang menerima prompt teks dan mengembalikan respons dari model LLM sumber terbuka (LLaMA) secara streaming langsung dari edge.
Inisialisasi Proyek TypeScript dengan Wrangler
Buka terminal Anda dan jalankan perintah CLI resmi dari Cloudflare untuk membuat proyek baru bernama edge-ai-worker dengan bahasa TypeScript:
Perintah tersebut menyiapkan struktur proyek beserta konfigurasi Wrangler untuk pengembangan lokal dan deployment.
Konfigurasi AI Binding di wrangler.jsonc
Buka berkas wrangler.jsonc (atau wrangler.toml) di akar direktori proyek. Tambahkan konfigurasi ai agar Worker memiliki akses ke GPU edge Cloudflare tanpa memerlukan token API:
Properti "binding": "AI" menginstruksikan runtime untuk menyuntikkan antarmuka Workers AI ke dalam objek env.AI.
Menulis Kode Implementasi Streaming AI
Buka berkas src/index.ts dan salin kode berikut. Kita memanggil model @cf/meta/llama-3.2-3b-instruct dengan opsi stream: true agar respons dikirim secara bertahap lewat event-stream:
Pengujian dan Deployment ke Jaringan Edge
Anda dapat menguji Worker secara lokal dengan menjalankan npx wrangler dev atau langsung menerbitkannya ke jaringan global Cloudflare menggunakan perintah:
Setelah proses selesai, Wrangler akan memberikan URL publik yang siap menerima request POST berformat JSON.
Contoh Pemanggilan Eksternal Menggunakan SDK OpenAI
Jika Anda memanggil Cloudflare Workers AI dari aplikasi web eksternal atau backend Node.js di luar Worker, gunakan endpoint AI Gateway yang kompatibel dengan format OpenAI SDK. Pada skenario inilah Anda menggunakan token API yang memiliki izin Account > Workers AI > Read:
Bagi Anda yang sedang merancang arsitektur webshop development modern yang cepat dan skalabel, pola integrasi eksternal ini memudahkan penambahan fitur asisten pintar tanpa harus memindahkan seluruh backend utama ke ekosistem edge.
Empat Kesalahan Umum Developer Saat Migrasi ke Edge
Berpindah dari server tradisional ke lingkungan V8 Isolates menuntut penyesuaian pola pikir. Berikut adalah empat kesalahan teknis yang paling sering terjadi beserta cara menghindarinya.
1. Menyamakan Wall-Clock Time dengan CPU-Time pada Paket Gratis
Banyak developer mengira operasi kriptografi berat, kompresi data, atau parsing JSON berukuran besar akan berjalan mulus di paket Cloudflare Workers Free selama waktu totalnya singkat.
Kuota paket Free hanya memberikan 10 milidetik waktu aktif CPU. Jika kode Anda membutuhkan komputasi prosesor lebih dari itu, eksekusi akan dihentikan karena melewati batas (CPU limit exceeded). Pindahkan komputasi berat ke paket Paid atau delegasikan logika CPU-bound ke layanan khusus di luar Worker.
2. Mengandalkan Memori Global untuk Persistensi Data
Menyimpan sesi pengguna pada variabel global seperti let cache = {} di luar fungsi utama merupakan jebakan klasik saat bermigrasi dari Node.js.
V8 Isolate bersifat sementara (ephemeral) dan tersebar di ratusan pusat data di seluruh dunia. Variabel global di dalam memori dapat hilang kapan saja dan tidak pernah tersinkronisasi antar-server.
Gunakan layanan penyimpanan yang tepat untuk persistensi data di edge:
- Workers KV: Untuk penyimpanan key-value dengan eventual consistency.
- Cloudflare D1: Untuk database relasional berbasis SQL.
- Durable Objects: Untuk manajemen state dengan konsistensi kuat (strongly consistent state) dan koordinasi WebSocket.
3. Hardcoding Nama Model di Workers AI
Cloudflare secara rutin memperbarui katalog model AI dan memensiunkan model versi lama. Menulis nama model secara langsung di dalam kode tanpa penanganan galat berisiko menyebabkan Error 500 ketika model tersebut dihentikan. Siapkan lapisan fallback di dalam blok try/catch dan periksa katalog model secara berkala.
4. Asumsi Kompatibilitas Node.js Penuh
Mengimpor pustaka yang bergantung pada modul sistem operasi atau biner C++ asli (seperti fs, child_process, atau net) akan menggagalkan kompilasi Worker. Aktifkan flag nodejs_compat di konfigurasi Wrangler untuk modul standar seperti node:crypto dan node:buffer, serta prioritaskan pustaka modern yang dibangun di atas standar Web API dan ESM murni.
Pertanyaan yang Sering Diajukan (FAQ)
Ya, gratis untuk kebutuhan skala kecil hingga 100.000 request per hari. Namun, paket Free memberlakukan penghentian paksa (hard stop Error 1027) bila kuota harian habis hingga direset pada 00:00 UTC. Untuk aplikasi komersial, disarankan beralih ke paket Paid ($5 per bulan) agar trafik tetap terlayani melalui skema pay-as-you-go overage.
API Key (API Token Cloudflare) hanya dibutuhkan jika Anda memanggil endpoint model Cloudflare AI dari luar lingkungan Cloudflare Workers, misalnya dari backend Express, aplikasi Flutter, atau skrip Python. Jika kode dieksekusi di dalam Worker, akses cukup menggunakan AI Binding (env.AI) tanpa API key.
AWS Lambda mengeksekusi kode di dalam kontainer atau micro-VM pada region pusat data tertentu dengan waktu cold start puluhan hingga ratusan milidetik. Cloudflare Workers berjalan di atas V8 Isolates yang tersebar otomatis di ratusan titik edge global tanpa konfigurasi region, dengan waktu cold start kurang dari 5 milidetik.
Memori dibatasi sebesar 128 MB per isolate. Batas waktu aktif prosesor (CPU-time) adalah 10 milidetik per eksekusi pada paket Free, dan hingga 30 detik secara default pada paket Paid.