Rivet Actors: Komunitas Mendiskusikan Alternatif untuk Durable Objects dengan Manajemen State Bawaan

BigGo Editorial Team
Rivet Actors: Komunitas Mendiskusikan Alternatif untuk Durable Objects dengan Manajemen State Bawaan

Komunitas teknologi sedang aktif mendiskusikan Rivet Actors, sebuah sistem baru yang membawa pemrograman model aktor kepada pengembang mainstream, dengan minat khusus pada perbandingannya dengan Durable Objects dari Cloudflare dan sistem aktor tradisional seperti Erlang.

Arsitektur dan Manajemen State

Rivet Actors mengimplementasikan sistem manajemen state canggih yang didukung oleh FoundationDB, menawarkan persistensi state otomatis setelah panggilan RPC. Sistem ini menyediakan pengembang pendekatan yang disederhanakan untuk menangani state melalui properti _state, memungkinkan operasi JavaScript sederhana tanpa kode manajemen state eksplisit. Implementasi ini memicu diskusi tentang jaminan konsistensi dan penanganan transaksi dalam komunikasi antar aktor.

Jika Anda menggunakan API KV secara langsung, ini benar. Aktor juga memiliki properti this._state, yang secara otomatis ditulis ke FDB setelah setiap panggilan RPC jika dimodifikasi. Ini memungkinkan pengembang untuk dengan cepat membuat prototipe dengan menulis kode JS biasa seperti this._state.count += 1 tanpa harus khawatir tentang penulisan state dan kasus-kasus khususnya.

Teknologi Inti:

  • Runtime: V8 & Deno
  • Penyimpanan Status: FoundationDB
  • OLTP: CockroachDB
  • Pemantauan: ClickHouse
  • Penyimpanan Cache: Valkey
  • Bus Pesan: NATS
  • Penyeimbang Beban: Traefik

Kasus Penggunaan dan Performa

Anggota komunitas telah menyoroti beberapa aplikasi praktis untuk Rivet Actors, khususnya dalam skenario yang membutuhkan kontensi tinggi dan konsistensi yang kuat. Ini termasuk pengeditan dokumen kolaboratif, aplikasi local-first dengan sinkronisasi CRDT, game multiplayer dengan state, dan sistem chat. Aspek penting yang dibahas adalah kemampuan sistem untuk secara otomatis menurunkan skala hingga nol ketika tidak digunakan, mengatasi masalah biaya operasional yang selama ini mengganggu sistem serupa seperti backend metaverse Improbable.

Kasus Penggunaan Utama:

  • Aplikasi kolaboratif
  • Aplikasi local-first
  • Agen AI
  • Server permainan
  • Aplikasi obrolan
  • Sinkronisasi dan penyimpanan CRDT
  • Pembatasan laju
  • Sistem penjadwalan
Menampilkan repositori GitHub Rivet Actors yang menyoroti kemampuan kolaboratif dalam aplikasi waktu nyata
Menampilkan repositori GitHub Rivet Actors yang menyoroti kemampuan kolaboratif dalam aplikasi waktu nyata

Pengalaman Pengembang dan Dukungan Bahasa

Poin diskusi yang signifikan berpusat pada pendekatan Rivet dalam membuat pemrograman model aktor lebih mudah diakses oleh pengembang mainstream. Sementara beberapa anggota komunitas menunjukkan bahwa fungsionalitas serupa sudah ada di Erlang/Elixir, yang lain menghargai fokus Rivet pada dukungan bahasa mainstream seperti TypeScript. Ini telah memicu percakapan yang lebih luas tentang trade-off antara sistem aktor tradisional dan implementasi modern.

Evolusi Teknis

Sejak diskusi sebelumnya di Hacker News pada tahun 2023, Rivet telah mengalami perubahan signifikan, termasuk penulisan ulang lengkap lapisan orkestrasi mereka, peluncuran runtime isolate, dan peningkatan kemampuan self-hosting. Komunitas telah menunjukkan minat khusus pada perkembangan ini, terutama penggantian alat orkestrasi tradisional seperti Nomad dengan mesin alur kerja in-house.

Diskusi-diskusi ini mengungkapkan minat yang berkembang pada sistem model aktor yang dapat menjembatani kesenjangan antara paradigma komputasi terdistribusi tradisional dan kebutuhan pengembangan modern, sambil mempertahankan biaya operasional yang wajar dan aksesibilitas pengembang.

Referensi: Rivet: Run and scale real-time applications with Rivet Actors