1 poin oleh GN⁺ 2025-02-02 | 1 komentar | Bagikan ke WhatsApp
  • Pengenalan

    • Hydro adalah framework pemrograman terdistribusi tingkat tinggi untuk Rust.
    • Hydro membantu menulis layanan terdistribusi yang dapat diskalakan dengan cepat, dan menjamin keamanan terdistribusi sebagaimana Rust menjamin keamanan memori.
    • Mendukung agar program terdistribusi dapat dijalankan dengan mudah dalam mode pengujian maupun mode deployment.
  • Fitur Hydro

    • Hydro adalah bahasa aliran data terdistribusi yang berjalan di atas runtime DFIR single-thread berperforma tinggi.
    • Berbeda dari arsitektur tradisional seperti actor atau RPC, Hydro menyediakan API choreographic yang dapat mendeskripsikan komputasi lintas banyak lokasi.
    • Terintegrasi dengan Hydro Deploy sehingga program Hydro terdistribusi dapat dengan mudah di-deploy dan dijalankan secara lokal maupun di cloud.
  • Kompilasi dan deployment

    • Hydro menggunakan pendekatan kompilasi dua tahap.
    • Program Hydro adalah program Rust standar yang menghasilkan deployment plan di laptop pengembang.
    • Rencana ini dikompilasi menjadi DFIR untuk menghasilkan biner terpisah bagi setiap mesin dalam sistem terdistribusi.
    • Dengan menggunakan rencana yang dihasilkan dan spesifikasi resource cloud, program kemudian di-deploy ke cloud.
  • Kasus penggunaan

    • Hydro digunakan untuk mengimplementasikan sistem terdistribusi berperforma tinggi seperti two-phase commit dan Paxos.
    • Sedang dikembangkan pustaka standar sistem terdistribusi yang menyediakan protokol-protokol ini sebagai komponen yang dapat digunakan kembali.
  • Hal yang perlu diperhatikan

    • Dokumentasi Hydro masih dalam proses pengerjaan, dan jika ada pertanyaan atau bug, pengguna disarankan untuk membuka issue di repositori GitHub Hydro.

1 komentar

 
GN⁺ 2025-02-02
Komentar Hacker News
  • Ada presentasi yang bagus di YouTube tentang proyek Hydro
    • Isinya berfokus pada DFIR
  • Sepertinya akan membantu pemahaman jika ada contoh penerapan nyata
  • Saya penasaran apakah keberadaan bahasa perantara dan runtime sendiri berarti kehilangan keunggulan Rust
    • Saya tadinya mengharapkan bahasa yang mengorkestrasi biner Rust menjadi sistem terdistribusi yang konsisten dan fungsional, tetapi ini tampaknya seperti menulis DFIR
  • Proyek ini benar-benar menarik
    • Saya penasaran apakah ada orang yang akrab dengan bidang ini yang bisa memberi tahu contoh sebelumnya
    • Saya penasaran apakah ada orang yang telah membangun framework serupa dalam bahasa lain
    • Ada orang-orang yang mengerjakan dataflow, dan saya menganggap Materialize sangat keren
    • Saya punya pengalaman menggunakan Kafka Streams, dan saya merasa perlu ada framework yang mengintegrasikan hal seperti ini
  • Upayanya bagus, tetapi saya berharap "akka.rs" hadir di ekosistem Rust
  • Saya penasaran bagaimana perbandingannya dengan Timely dari sudut pandang dataflow
    • Saya penasaran apakah alur kontrol seperti loop bisa direpresentasikan di IR
  • Saya penasaran apakah setiap "proses" didistribusikan sebagai biner terpisah dan dijalankan sebagai proses terpisah
    • Jika demikian, sepertinya ada masalah peningkatan overhead
    • Saya penasaran bagaimana komunikasi cepat dilakukan
    • Saya penasaran apakah ada mekanisme IPC shared memory yang cepat
    • Sepertinya tidak ada pembahasan tentang integrasi dengan async
    • Sebagian besar kode yang menangani networking telah beralih ke async
    • Sulit menemukan library async yang bagus untuk banyak hal yang memerlukan networking
  • Ini terlihat sangat keren, terutama bagian deployment yang tampak unik
    • Saya berharap ada dokumentasi yang lebih rinci
    • Saya terutama penasaran dengan bagian Streams, Singletons, dan Optionals yang penting
  • Saya suka model pemrogramannya
    • Saya penasaran apakah ada optimasi jaringan yang dilakukan saat aplikasi ditulis ulang
    • Saya penasaran bagaimana bottleneck dan kemacetan jaringan ditangani
  • Saya penasaran bagaimana perbandingannya dengan menggunakan Ballista untuk pipeline data
    • Yang terakhir dibangun di atas Apache Arrow dan Apache Datafusion sehingga mendapat banyak keuntungan darinya