15 poin oleh xguru 2022-12-05 | 1 komentar | Bagikan ke WhatsApp
  • Fiberplane adalah alat notebook kolaboratif untuk infrastruktur (respons insiden dan debugging infrastruktur)
  • Ini membantu menyelesaikan dua masalah besar

1. Operational Transformation

  • Diperlukan cara untuk menyelesaikan konflik dalam fitur kolaborasi editor
  • Mereka mengimplementasikan OT, algoritme yang digunakan Google Docs, tetapi itu bukan pekerjaan yang mudah
  • Sumber utama kompleksitasnya adalah ketika operasi yang didukung bertambah banyak, jumlah transformasi yang harus diimplementasikan meningkat secara eksponensial
  • Logika untuk menerapkan ini harus ada di klien maupun server. Ketidaksesuaian di antara keduanya bisa menimbulkan efek samping (misalnya notebook yang berbeda antar kolaborator)
  • Mengimplementasikan ini dua kali secara terpisah di kedua sisi terlalu berisiko. Timnya juga kecil, dan kode yang harus diduplikasi akan sangat banyak
  • Karena itu, mereka mengimplementasikan algoritme backend dengan Rust. Lalu, dengan menggunakan WASM, kode yang sama persis dijalankan juga di frontend
  • Dengan ini, upaya pengembangan bisa dihemat dan risiko ketidaksesuaian berkurang

2. Providers

  • Masalah lainnya adalah membawa data dari sumber data eksternal ke notebook
  • Sumber data memiliki berbagai bentuk dan ukuran, dan tidak selalu mudah diakses dari browser pengguna
  • Untuk menyelesaikan masalah ini, mereka membuat plugin berbasis WASM bernama "Fiberplane Providers" yang dapat berjalan baik di browser maupun di server proxy yang dihosting pelanggan
  • Teknologi seperti ini juga bisa dibuat dengan JavaScript, tetapi WASM memiliki keunggulan berikut
    • Performa yang lebih baik
    • Plugin dapat ditulis dalam bahasa apa pun yang didukung WASM
    • Plugin WASM dijalankan dalam sandbox sehingga membatasi kemampuan provider yang berbahaya

fp-bindgen

  • WebAssembly berguna dalam berbagai skenario
  • Ini dapat menyederhanakan pengembangan produk mereka sendiri, atau menjalankan dengan aman kode yang mengakses infrastruktur pelanggan
  • Karena WASM penting dan banyak digunakan, mereka juga membuat alat internal tersendiri
  • fp-bindgen adalah generator binding yang bekerja pada kode sumber Rust
  • Ini dapat digunakan untuk menulis plugin WASM dalam Rust dan meng-host-nya di browser atau lingkungan Wasmer
  • fp-bindgen telah dirilis sebagai open source

1 komentar

 
xguru 2022-12-05

Saya suka tulisan startup seperti ini.
Mereka merapikan masalah yang berhasil mereka selesaikan agar bermanfaat bagi orang lain, sambil sekaligus mempromosikan open source terkait milik mereka sendiri, sehingga juga memberi kesan berkontribusi pada ekosistem.

Di GeekNews Weekly #177, pernah diperkenalkan QuickJS-emscripten: Menjalankan QuickJS dengan mengompilasinya ke WASM.
Di sini juga tampaknya mereka mengadopsi konsep plugin melalui sandboxing. Pemanfaatan WASM sebagai container untuk sandboxing sepertinya kini mulai menjadi hal yang standar.