19 poin oleh GN⁺ 2026-01-02 | 1 komentar | Bagikan ke WhatsApp
  • OpenWorkers adalah runtime open-source yang menjalankan JavaScript di atas V8, sehingga komputasi edge dapat diterapkan di infrastruktur sendiri
  • Mendukung penyimpanan KV, PostgreSQL, storage kompatibel S3/R2, service bindings, serta variabel lingkungan dan secret
  • Menjaga kompatibilitas tinggi dengan Cloudflare Workers, termasuk Web API utama seperti fetch, ReadableStream, dan crypto.subtle
  • Self-hosting sederhana dimungkinkan dengan sandbox V8 Isolate, penjadwalan cron, dan deployment berbasis Docker Compose
  • Proyek ini telah berkembang selama sekitar 7 tahun, dengan tujuan menjadi lingkungan eksekusi JavaScript tanpa ketergantungan vendor

Ikhtisar OpenWorkers

  • OpenWorkers adalah runtime kompatibel Cloudflare Workers yang ditulis dengan Rust, dan menjalankan JavaScript menggunakan V8 Isolate
    • Memungkinkan pemanfaatan keunggulan komputasi edge juga di lingkungan server sendiri
    • Dirilis sebagai open source sehingga bebas untuk dideploy dan dimodifikasi

Fitur utama

  • Melalui fitur Bindings, dapat terhubung ke berbagai sumber daya eksternal
    • Storage KV: mendukung get, put, delete, list
    • Integrasi dengan database PostgreSQL
    • Dukungan untuk storage kompatibel S3/R2
    • Termasuk service bindings, variabel lingkungan, dan manajemen secret
  • Dukungan Web API
    • Menyediakan API standar seperti fetch, Request, Response, dan ReadableStream
    • Termasuk crypto.subtle, TextEncoder/Decoder, Blob, setTimeout, dan AbortController

Arsitektur

  • Sistem terdiri dari proxy nginx, dashboard, API, layanan log, runner, PostgreSQL, NATS, scheduler, dan komponen lainnya
    • Setiap runner mengeksekusi kode di dalam V8 Isolate, dengan batas CPU 100ms dan memori 128MB
    • Termasuk scheduler bawaan yang mendukung sintaks cron 5–6 field
    • Menjaga kompatibilitas sintaks dengan Cloudflare Workers

Self-hosting

  • Deployment dapat dilakukan hanya dengan satu database PostgreSQL dan satu file Docker Compose
    • Dapat dijalankan dengan mudah menggunakan perintah git clone, pengaturan .env, dan docker compose up
    • Termasuk proses migrasi dan pembuatan token

Latar belakang pengembangan

  • Proyek ini diselesaikan melalui proses pengembangan selama sekitar 7 tahun
    • Pada awalnya bereksperimen dengan sandboxing JS menggunakan vm2, lalu berkembang dengan inspirasi dari model Cloudflare Workers
    • Setelah melalui Deno-core, kini ditulis ulang berbasis rusty_v8
  • Tujuannya adalah menyediakan pengalaman pengembang (DX) setingkat Cloudflare Workers sambil membangun lingkungan eksekusi server sendiri tanpa ketergantungan vendor
  • Ke depannya direncanakan penambahan fitur deterministic debugging melalui rekaman dan pemutaran ulang eksekusi

1 komentar

 
GN⁺ 2026-01-02
Komentar Hacker News
  • Konsep membawa kekuatan edge computing ke infrastruktur sendiri terasa menarik
    Namun self-hosting terasa agak bertentangan dengan esensi edge computing itu sendiri
    Ini adalah model yang dimungkinkan karena vendor besar seperti Cloudflare memiliki lebih dari 300 PoP (Point of Presence) di seluruh dunia
    Tentu saja, struktur serupa bisa dibangun dengan menggabungkan vendor yang lebih kecil dan lebih etis, tetapi butuh usaha dan risiko yang jauh lebih besar

    • Saya ragu apakah benar-benar perlu 300 PoP untuk mendapatkan manfaat model edge
      Mungkin sekitar 10 di wilayah-wilayah utama saja sudah cukup
    • Saya penasaran apakah model kolaborasi jaringan host terdistribusi bisa memungkinkan untuk memecah monopoli Cloudflare
      Meski begitu, saya juga khawatir koordinasinya akan terlalu sulit untuk dilakukan dengan aman dan andal
  • Masalah dengan solusi sandbox adalah harus ada jaminan kuat bahwa kode tidak bisa keluar dari sandbox
    Untuk membuktikannya, dibutuhkan hasil pengujian terhadap berbagai skenario serangan dan dokumentasi yang rinci
    Namun dokumentasi setingkat itu sangat jarang, dan sulit menemukan contoh yang benar-benar bisa dipercaya
    Karena itu, saya biasanya memeriksa apakah ada kasus penggunaan nyata di lingkungan produksi perusahaan besar yang dipelihara oleh tim keamanan

    • Saya juga setuju. AI memang meningkatkan produktivitas, tetapi di lingkungan dengan keamanan tinggi, kalimat seperti “ditulis ulang di atas rusty_v8 dengan bantuan Claude” justru terdengar mengkhawatirkan
    • Salah satu alasan runtime Cloudflare Workers aman adalah karena mereka sangat aktif menjaga sinkronisasi dengan V8 mainline
      Bahkan kadang mereka menerapkan rilis V8 lebih cepat daripada Chrome
    • V8 isolate menyediakan isolasi memori, dengan batas CPU (100ms) dan memori (128MB)
      Setiap worker berjalan sebagai isolate, bukan proses terpisah, sehingga mirip dengan model Cloudflare
      Tetapi saat menangani kode pihak ketiga yang benar-benar tidak tepercaya, lebih baik menambahkan satu lapis isolasi lagi dengan container atau VM
      Sandboxing ini lebih berfokus pada isolasi resource daripada keamanan
    • Saya rasa menuntut jaminan sempurna seperti itu tidak realistis
      Audit keamanan tingkat “kami sudah memverifikasi dan ini aman, percayalah” tidaklah cukup
    • Cloudflare membutuhkan keamanan sandbox karena kode pengguna bisa saja berbahaya,
      tetapi di lingkungan self-hosting, Anda pada dasarnya sudah punya akses ke sistem, jadi kekhawatiran soal sandbox escape jauh lebih kecil
  • Menurut saya ini proyek yang keren
    Jika workerd sudah open source, saya penasaran apakah pembeda OpenWorkers adalah bahwa ia menyediakan lingkungan lengkap
    Saya juga ingin tahu perbedaan pada runtime itu sendiri, dan apakah ada rencana untuk layanan terkelola ke depannya

    • Ada tiga perbedaan utama
      1️⃣ workerd hanya menyediakan runtime, sedangkan OpenWorkers adalah platform lengkap yang mencakup dashboard, API, scheduler, log, binding (KV, S3/R2, Postgres)
      2️⃣ workerd berbasis C++, sementara OpenWorkers berbasis Rust + rusty_v8 sehingga lebih sederhana dan lebih mudah diutak-atik
      3️⃣ Sudah ada versi terkelola di dash.openworkers.com, termasuk tier gratis
      Namun self-hosting dirancang sebagai warga kelas satu
  • Inti dari Cloudflare Workers adalah penagihan per fungsi, tetapi jika di-self-host, pada akhirnya hardware tetap harus disiapkan di awal

    • Masih banyak perusahaan yang menjalankan server di data center mereka sendiri
      Tidak semuanya harus dialihdayakan, dan bagus bahwa ada pilihan serupa
      Opsi seperti ini membantu menurunkan hambatan adopsi
  • Dulu saya cukup banyak bekerja memisahkan deno_core, jadi saya paham kenapa dipindahkan ke raw rusty_v8
    deno_core punya banyak kode legacy, jadi setiap kali diubah, test sering rusak

    • Terima kasih! deno_core tetap codebase yang hebat, jadi kami masih mempertahankannya melalui openworkers-runtime-deno
      Namun kami pindah ke rusty_v8 agar bisa mengendalikan bagian dalam runtime dengan lebih rinci,
      dan nantinya kami berencana menambahkan kembali fitur-fitur yang masih kurang ke runtime deno
  • Saya selalu mendukung proyek yang membantu mengurangi vendor lock-in
    Saya berharap layanan cloud ditekan untuk menyesuaikan harga agar lebih masuk akal
    Saat ini bahkan fitur dasar seperti NAT dikenai biaya berlebihan
    Tentu cloud itu nyaman, tetapi masalahnya adalah biayanya tinggi dibanding DIY

    • Runtime Cloudflare Workers sendiri sudah open source: cloudflare/workerd
    • Saya khawatir kenaikan harga RAM belakangan ini akan membuat self-hosting makin sulit
      Jika perusahaan besar memonopoli resource, individu bisa makin sulit melakukan hosting sendiri
    • Ungkapan bahwa biaya NAT itu ‘lebih mahal daripada gratis’ terdengar menarik
      Tetapi dalam praktiknya, di banyak negara biaya menjalankan sendiri justru lebih besar
      Bukan sekadar instalasi, biaya personel untuk maintenance dan monitoring juga cukup signifikan
  • Akan bagus jika dokumentasi menjelaskan fitur yang saat ini belum berfungsi dan roadmap-nya

    • Saran yang bagus! Fitur yang belum diimplementasikan saat ini adalah Durable Objects, WebSockets, HTMLRewriter, dan cache API
      Prioritas berikutnya adalah fitur rekam/putar ulang eksekusi untuk debugging, dan kami akan menambahkan bagian roadmap ke dokumentasi
  • Diagram arsitektur ASCII terlihat rusak di Pixel + Firefox
    Diagram berbasis teks memang menarik, tetapi dalam praktiknya lebih masuk akal untuk memublikasikan versi yang dikompilasi sebagai gambar

    • Terima kasih atas laporannya! Kami sudah memperbaikinya dengan menambahkan versi ASCII yang disederhanakan untuk mobile
    • Di iPhone 11 Safari saya, tampilannya sempurna
  • Secara teknis maupun struktural, ini ide produk yang sangat bagus
    Saya terutama menyukai model membalas proyek open source milik vendor besar dengan open source juga
    Artinya, alih-alih mereka mengambil open source lalu mengomersialkannya, kita justru mengembalikan model mereka ke open source — menurut saya pendekatan seperti inilah yang benar

  • Rasanya tren “bagaimana kalau kita host cloud langsung di komputer kita sendiri?” sedang kembali lagi
    Belakangan ini tren self-hosting seperti ini terlihat di berbagai tempat
    Video presentasi terkait juga menarik

    • Tapi menurut saya itu sudah sulit disebut ‘cloud’
      Inti cloud adalah elastisitas (elasticity)
      Struktur dasarnya adalah bisa menambah atau mengurangi instance sesuai kebutuhan, lalu membayar hanya untuk yang dipakai
      Self-hosting memang membuat alat deployment jadi praktis, tetapi pada akhirnya Anda tetap harus menanggung biaya seluruh server
      Jika bebannya tetap atau bisa diprediksi, itu tidak masalah, tetapi jika tidak, maka jadi tidak efisien
      (Analogi sederhananya seperti naik bus dibanding memiliki van sendiri)
    • Nilai FaaS (Function-as-a-Service) lebih terletak pada penyediaan framework berbasis event daripada kata ‘cloud’ itu sendiri
      Developer bisa fokus mengimplementasikan event handler, dan menjadi lebih kuat lagi jika mencakup queue atau eksekusi yang durable
      Pada akhirnya FaaS adalah alat tingkat tinggi yang mengabstraksikan kode boilerplate