Komuniti teknologi sedang giat membincangkan Rivet Actors, satu sistem baharu yang membawa pengaturcaraan model-aktor kepada pembangun arus perdana, dengan minat khusus dalam perbandingannya dengan Durable Objects dari Cloudflare dan sistem aktor tradisional seperti Erlang.
Seni Bina dan Pengurusan Keadaan
Rivet Actors melaksanakan sistem pengurusan keadaan yang canggih yang dikuasakan oleh FoundationDB, menawarkan pengekalan keadaan automatik selepas panggilan RPC. Sistem ini menyediakan pembangun dengan pendekatan yang dipermudahkan untuk mengendalikan keadaan melalui sifat _state
, membolehkan operasi JavaScript yang mudah tanpa kod pengurusan keadaan yang eksplisit. Pelaksanaan ini telah mencetuskan perbincangan mengenai jaminan konsistensi dan pengendalian transaksi merentasi komunikasi aktor.
Jika anda menggunakan API KV secara langsung, ini adalah betul. Aktor juga mempunyai sifat
this._state
, yang secara automatik ditulis ke FDB selepas setiap panggilan RPC jika diubah suai. Ini membolehkan pembangun membuat prototaip dengan cepat dengan menulis kod JS biasa sepertithis._state.count += 1
tanpa perlu risau tentang penulisan keadaan dan kes-kes pinggiran yang berkaitan.
Teknologi Teras:
- Masa Jalan: V8 & Deno
- Penyimpanan Keadaan: FoundationDB
- OLTP: CockroachDB
- Pemantauan: ClickHouse
- Penyimpanan Cache: Valkey
- Bas Pesanan: NATS
- Pengimbangan Beban: Traefik
Kes Penggunaan dan Prestasi
Ahli komuniti telah menyoroti beberapa aplikasi praktikal untuk Rivet Actors, terutamanya dalam senario yang memerlukan persaingan tinggi dan konsistensi yang kuat. Ini termasuk penyuntingan dokumen kolaboratif, aplikasi local-first dengan penyegerakan CRDT, permainan berbilang pemain berkeadaan, dan sistem sembang. Satu aspek penting yang dibincangkan ialah keupayaan sistem untuk mengecilkan skala secara automatik kepada sifar apabila tidak digunakan, menangani kebimbangan tentang kos operasi yang telah menghantui sistem serupa seperti backend metaverse Improbable.
Kes Penggunaan Utama:
- Aplikasi kolaboratif
- Aplikasi local-first
- Ejen AI
- Pelayan permainan
- Aplikasi perbualan
- Penyegerakan dan penyimpanan CRDT
- Pengehadan kadar
- Sistem penjadualan
Pameran repositori GitHub Rivet Actors menyerlahkan keupayaan kolaboratif dalam aplikasi masa nyata |
Pengalaman Pembangun dan Sokongan Bahasa
Satu perkara penting yang dibincangkan berkisar tentang pendekatan Rivet untuk menjadikan pengaturcaraan model-aktor lebih mudah diakses oleh pembangun arus perdana. Walaupun sesetengah ahli komuniti menunjukkan bahawa fungsi serupa wujud dalam Erlang/Elixir, yang lain menghargai fokus Rivet dalam menyokong bahasa arus perdana seperti TypeScript. Ini telah mencetuskan perbincangan yang lebih luas tentang pertukaran antara sistem aktor tradisional dan pelaksanaan moden.
Evolusi Teknikal
Sejak perbincangan sebelumnya di Hacker News pada 2023, Rivet telah mengalami perubahan ketara, termasuk penulisan semula lengkap lapisan pengorchestrasian mereka, pelancaran runtime isolate, dan penambahbaikan keupayaan self-hosting. Komuniti telah menunjukkan minat khusus dalam perkembangan ini, terutamanya penggantian alat pengorchestrasian tradisional seperti Nomad dengan enjin aliran kerja dalaman.
Perbincangan ini mendedahkan minat yang semakin meningkat dalam sistem model-aktor yang boleh merapatkan jurang antara paradigma pengkomputeran teragih tradisional dan keperluan pembangunan moden, sambil mengekalkan kos operasi yang munasabah dan kebolehcapaian pembangun.
Rujukan: Rivet: Run and scale real-time applications with Rivet Actors