Iggy.rs - Membangun message streaming dengan Rust
(blog.iggy.rs)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
Opini Hacker News