3 poin oleh GN⁺ 2024-01-06 | 1 komentar | Bagikan ke WhatsApp

Asal mula

  • Pada April 2023, diputuskan untuk mempelajari Rust.
  • Berdasarkan pengalaman dalam sistem terdistribusi dan messaging, diputuskan untuk mengembangkan platform message streaming.
  • Tujuannya adalah memahami cara kerja internal sistem messaging dan trade-off yang dihadapi para developer.
  • Lahirnya Iggy.rs, dengan penetapan tujuan sebagai platform message streaming yang menekankan kecepatan dan bobot ringan.

Proyek

  • Iggy versi awal menggunakan protokol QUIC untuk menyediakan fungsi dasar pertukaran pesan.
  • Melalui prototyping dan perbaikan berkelanjutan, dibangun server yang mendukung penulisan/pembacaan paralel serta stream yang independen.
  • Dukungan untuk protokol TCP dan HTTP ditambahkan, dan performa ditingkatkan melalui optimasi mekanisme sinkronisasi data.
  • Melalui benchmarking, terkonfirmasi throughput tinggi dan latensi rendah, lalu proyek ini diubah menjadi proyek jangka panjang.

Tim

  • Iggy dikerjakan oleh tim beranggotakan sekitar 10 orang yang berkontribusi di berbagai bagian.
  • Mereka terlibat dalam beragam proyek seperti core server, SDK, web UI, dan CLI.
  • Developer dengan latar pengalaman yang beragam berpartisipasi secara sukarela karena berbagi semangat terhadap pemrograman.
  • Partisipasi para kontributor eksternal dari seluruh dunia meningkatkan keyakinan terhadap proyek ini.

Fitur

  • Server message streaming berbasis log yang berperforma tinggi dan berkelanjutan.
  • Throughput tinggi, latensi rendah, serta penggunaan resource yang dapat diprediksi berkat bahasa terkompilasi Rust.
  • Dukungan untuk banyak stream, topic, partisi, dan berbagai protokol transport.
  • RESTful API, client SDK untuk berbagai bahasa, serta kemampuan bekerja langsung dengan data biner.
  • Fitur server dapat dikonfigurasi, offset konsumen disimpan di server, dan mendukung berbagai metode polling pesan.
  • Consumer group untuk urutan pesan dan skalabilitas horizontal, serta fitur kedaluwarsa pesan dan deduplikasi.
  • Dukungan TLS untuk semua protokol transport, enkripsi data opsional, dan dukungan message header.
  • CLI bawaan dan aplikasi benchmarking untuk mengelola server streaming, dengan deployment sebagai binary tunggal.

Roadmap

  • Setelah muncul di halaman trending GitHub, mulai ada diskusi dengan pengguna mengenai penambahan fitur.
  • Menargetkan peningkatan performa dan keandalan melalui clustering, low-level I/O, dan arsitektur thread per core.
  • Bereksperimen dengan mekanisme konsensus Raft, meningkatkan pekerjaan I/O melalui io_uring, dan berencana menggunakan runtime monoio.

Masa depan

  • Menargetkan platform message streaming serbaguna serta menantang batasan OS dan hardware.
  • Berencana mendukung berbagai bahasa pemrograman, CLI, dan web UI melalui platform terintegrasi yang mudah digunakan.
  • Menargetkan perkembangan melalui feedback dan ide dari komunitas.

GN⁺ berpendapat

  • Iggy.rs adalah platform message streaming berbasis Rust yang menargetkan performa tinggi dan latensi rendah.
  • Sebagai proyek open source, proyek ini terus berkembang melalui partisipasi dan kontribusi sukarela dari developer di seluruh dunia.
  • Target ambisiusnya untuk melampaui batas performa sistem terdistribusi melalui teknologi inovatif seperti clustering, optimasi low-level I/O, dan arsitektur thread per core sangat menarik, serta menjadikannya proyek yang sangat bermanfaat bagi orang-orang yang tertarik pada bidang ini.

1 komentar

 
GN⁺ 2024-01-06
Opini Hacker News
  • Hal yang pertama kali membuat tertarik pada bidang perangkat lunak bukanlah uang, melainkan idealisme orang-orang yang berusaha menuju tujuan bersama. Semoga proyek ini berhasil, dan semoga posisinya bisa dipahami lebih baik melalui perbandingan dengan alternatif lain.
  • Menyukai postingan blog ini, dan penulisnya tampak rendah hati, jujur, serta seperti pemimpin proyek yang konstruktif. Semoga proyek ini berhasil.
  • Tampaknya merupakan produk yang bersaing langsung dengan JetStream, dan menunjukkan kemajuan yang mengesankan dengan waktu pengerjaan kurang dari satu tahun.
  • Postingan ini membuat kembali memikirkan asal-usul Fluvio; sebuah tim kecil dengan hubungan panjang selama puluhan tahun dengan aplikasi berpusat pada data di berbagai bidang merasa antusias dengan data streaming menggunakan Rust dan WebAssembly.
  • Perbandingannya dengan Kafka dan Fluvio (pesaing Kafka lain yang juga ditulis dengan Rust) belum jelas, tetapi bisa jadi ini adalah message queue seperti RabbitMQ.
  • Beberapa tahun lalu pernah membuat sesuatu yang mirip bersama seorang teman menggunakan Go.
  • Ingin mencobanya setelah belajar Rust, dan menyukai estetika situsnya.
  • Proyek ini menarik, tetapi sebelum mencobanya perlu memahami cara menjalankan beberapa instance server dan bagaimana interaksi file system antarserver bekerja.
  • Dibandingkan dengan streaming di KeyDB, keunggulannya tampaknya adalah persistensi yang lebih tangguh.
  • Terkejut dengan pilihan monoio. Ini memerlukan penggunaan compiler nightly, dan terasa bukan pilihan yang baik untuk pemeliharaan proyek.