Episode ini membahas edge dan serverless: edge functions dan serverless runtimes, deployment Remix di Cloudflare Workers atau Deno, perbedaan runtime dan pertimbangan environment, serta use case deployment edge-first.

Episode 20 memperkenalkan perbedaan server versus edge. Episode 21 menggali sisi edge dan serverless lebih dalam — karena ini bukan tren sesaat, melainkan arah deployment aplikasi web modern.
Idenya sederhana: alih-alih satu server di satu lokasi, kode berjalan di banyak node yang tersebar di seluruh dunia. Pengguna di Jakarta dilayani node di Asia, pengguna di Sao Paulo dilayani node di Amerika Selatan. Latensi turun drastis karena data tidak perlu melintasi benua.
Episode 21 akan membahas edge functions dan serverless, deployment di Cloudflare Workers atau Deno, perbedaan runtime, serta use case yang cocok untuk pendekatan edge-first.
Satu catatan penting sebelum mulai: edge bukan pengganti semua arsitektur, melainkan tambahan yang tepat untuk sebagian beban kerja. Memahami kapan memakainya — dan kapan tidak — adalah bagian dari keterampilan ini.
Edge function adalah potongan kode yang berjalan di server edge, dekat dengan pengguna. Berbeda dari fungsi serverless biasa yang bisa berjalan di region tertentu, edge function selalu berjalan di node terdekat. Keduanya berbagi konsep: tidak ada proses yang berjalan permanen, kode dieksekusi per request.
export async function loader() {
const waktu = new Date().toISOString();
const region = "edge-node";
return { waktu, region };
}Kode di atas hanya memakai API standar JavaScript — pola yang aman untuk edge. Logika berat, database besar, dan library native sebaiknya tidak ada di sini.
Konsekuensi lain dari model per-request: tidak ada state yang bertahan di memori antar request. Setiap pemanggilan memulai dari awal. State lintas request harus disimpan di database, cache, atau storage eksternal — pola yang sudah kalian kenal dari episode 10 dan 14.
Serverless klasik menjalankan fungsi di region tertentu yang dikonfigurasi. Bila trafik global, kalian bisa memilih beberapa region, tetapi setiap pemanggilan tetap di satu region. Edge menghapus keputusan ini: eksekusi selalu di node terdekat.
Keduanya juga berbagi keunggulan skala: platform menaikkan dan menurunkan kapasitas otomatis mengikuti trafik, sehingga kalian tidak perlu menyiapkan server untuk beban puncak. Ini alasan utama tim kecil memilih serverless dan edge untuk memulai.
Remix mendukung Cloudflare lewat adapter @remix-run/cloudflare-pages. Cloudflare Pages memakai infrastruktur Workers sehingga aplikasi berjalan di seluruh jaringan edge Cloudflare. Pilih adapter ini saat target utama kalian adalah edge network Cloudflare.
npm view @remix-run/cloudflare-pages version
npm view @remix-run/cloudflare-workers versionCloudflare Pages adalah cara paling umum untuk Remix di ekosistem Cloudflare. Ia menangani build, serve aset, dan menjalankan fungsi edge dengan satu konfigurasi.
Perbedaan antara Pages dan Workers: Pages berfokus pada aplikasi web lengkap dengan aset statis dan fungsi terintegrasi, sedangkan Workers lebih fleksibel untuk logika API murni. Untuk aplikasi Remix, Pages adalah titik awal yang paling mudah.
Deno adalah runtime JavaScript modern yang bisa dipakai Remix. Runtime berbeda berarti API berbeda: periksa dokumentasi adapter sebelum memakai fitur spesifik. Prinsip yang sama berlaku — loader dan action tetap berjalan di server — hanya lingkungan eksekusinya yang berubah.
Setiap runtime punya dukungan API yang berbeda. Node.js memiliki API lengkap: filesystem, child process, dan library native. Edge lebih terbatas namun lebih cepat dan tersebar. Biasakan membaca dokumentasi runtime saat memilih fitur, bukan berasumsi semuanya tersedia.
Kabar baiknya, sebagian besar kode Remix memakai Web API standar: fetch, Request, Response, URL, dan Headers. Web API standar ini bekerja konsisten di Node, Deno, dan edge. Kode yang hanya memakai Web API paling mudah dipindah antar runtime.
Environment variables di edge dikonfigurasi per project platform dan tersedia sebagai variabel runtime. Perhatikan batas ukuran env dan cara variabel dibaca di runtime edge — kadang lewat binding khusus, bukan process.env.
Warning
Sebelum memindahkan aplikasi ke edge, audit kode untuk dependency yang tidak tersedia: filesystem, child process, dan beberapa library native tidak ada di runtime edge. Tulis unit test atau checklist sederhana untuk menangkap ketergantungan ini lebih awal.
Edge paling unggul untuk hal-hal ini:
Hindari edge untuk: koneksi database jangka panjang, WebSocket yang membutuhkan koneksi persisten, atau pekerjaan CPU berat. Edge adalah tempat keputusan cepat, bukan tempat komputasi panjang.
Banyak aplikasi production memakai campuran: edge untuk aset dan rute publik, server untuk rute yang butuh komputasi penuh. Remix mendukung campuran ini karena setiap route bisa memakai runtime yang sesuai. Mulai sederhana, lalu pindahkan bagian yang perlu ke tempat yang tepat.
Untuk memutuskan bagian mana yang diletakkan di mana, tanyakan dua hal: apakah logikanya butuh API yang tidak tersedia di edge, dan apakah audiensnya tersebar luas. Rute publik yang ringan dan membaca data cepat cocok di edge; rute yang menulis banyak data atau memakai library native cocok di server.
Episode 21 membuka dunia edge dan serverless: edge functions yang berjalan dekat pengguna, deployment di Cloudflare Pages atau Deno, perbedaan API antar runtime, dan strategi memilih kapan edge-first benar-benar menguntungkan. Kode kalian kini bisa hadir di seluruh dunia sekaligus.
Inti yang harus dibawa pulang:
Di episode 22 selanjutnya kita akan membahas observability dan support — monitoring performa dan real user metrics, error reporting dengan Sentry, logging request dan response metrics, serta dukungan produksi dan incident response. Aplikasi sudah tersebar di seluruh dunia; sekarang pastikan kalian bisa melihat kondisinya.