- Kode runtime JavaScript/WASM yang benar-benar digunakan di Cloudflare Workers
- Hanya sebagian yang diubah agar bisa di-porting ke lingkungan lain
- Namanya diambil dari
-d "daemon" pada server Unix, sehingga dibaca "worker dee"
Kegunaan
- Workers bisa di-self-host. Juga merupakan web server yang bisa digunakan langsung via API. Mudah diterapkan di lingkungan apa pun
- Digunakan untuk pengembangan dan pengujian lokal
- Proxy yang dapat diprogram (forward & reverse). Dapat mencegat dan memproses request/response dengan JavaScript
What it is
- Server-first : banyak runtime JS/WASM dapat digunakan untuk berbagai tujuan, tetapi workerd hanya berfokus pada server. Terutama HTTP server
- Web standard APIs : menyediakan API standar yang sama seperti yang digunakan di web browser (Fetch, URL, WebCrypto, dll.). Artinya, kode yang dikembangkan di sini juga bisa di-porting ke browser
- Nanoservices : kini melampaui microservices menjadi nanoservices!
- Nanoservices adalah model baru yang memiliki keunggulan deployment independen dengan overhead setara pemanggilan fungsi library
- Dengan workerd, banyak Worker dapat dikonfigurasi dalam proses yang sama, dan tiap Worker berjalan secara independen tetapi juga bisa saling berkomunikasi
- Homogeneous deployment : sebelumnya layanan tertentu harus dijalankan di container tertentu, tetapi dengan workerd semua mesin dapat menjalankan semua layanan
- Capability bindings: konfigurasi yang rapi dan menjamin keamanan SSRF
- Always backwards compatible : selalu menjamin kompatibilitas ke belakang
What it's not
- workerd is not a Secure Sandbox : kode berbahaya bisa saja dijalankan. Untuk mencegahnya diperlukan lapisan sandboxing terpisah
- workerd is not an independent project : inti sekaligus bagian dari Cloudflare Workers. Menerima commit eksternal, tetapi sulit menjaminnya.
- workerd is not an off-the-shelf edge compute platform : bukan keseluruhan layanan Workers
2 komentar
Ini yang ingin saya coba buat saat dirilis, ohho
Saya sempat bingung ini maksudnya apa, tetapi ternyata yang dimaksud adalah jika pengembangan dilakukan dengan pendekatan nanoservice (functions) seperti yang dijelaskan tepat sebelumnya, semua nanoservice bisa langsung dideploy ke satu mesin (katanya ini memungkinkan karena overhead-nya rendah), lalu kalau perlu tinggal menambah mesin yang sama, jadi tidak memerlukan konfigurasi deployment yang rumit.