Iggy.rs - Rust ile inşa edilen mesaj akışı
(blog.iggy.rs)Köken
- Nisan 2023'te Rust öğrenmeye karar verildi.
- Dağıtık sistemler ve mesajlaşma konusundaki deneyime dayanarak bir mesaj akışı platformu geliştirmeye karar verildi.
- Amaç, mesajlaşma sistemlerinin iç çalışma mantığını ve geliştiricilerin yaptığı trade-off'ları anlamaktı.
- Böylece Iggy.rs doğdu; hız ve hafifliği öne çıkaran bir mesaj akışı platformu hedefi belirlendi.
Proje
- İlk Iggy, QUIC protokolünü kullanarak temel mesaj alışverişi işlevleri sundu.
- Sürekli prototipleme ve iyileştirmelerle paralel yazma/okuma ve bağımsız stream desteği sunan bir sunucu geliştirildi.
- TCP ve HTTP protokol desteği eklendi, veri senkronizasyon mekanizmaları optimize edilerek performans artırıldı.
- Benchmark sonuçları yüksek throughput ve düşük gecikmeyi doğruladı, bunun üzerine proje uzun vadeli bir çalışmaya dönüştü.
Ekip
- Iggy'ye yaklaşık 10 üyeden oluşan bir ekip farklı alanlarda katkı sağlıyor.
- Çekirdek sunucu, SDK'ler, web UI, CLI gibi çeşitli projelerde yer alıyorlar.
- Programlamaya tutkuyla bağlı, farklı deneyimlere sahip geliştiriciler gönüllü olarak katıldı.
- Dünyanın dört bir yanından gelen dış katkıcıların katılımı, projeye olan güveni artırdı.
Özellikler
- Yüksek performanslı, kalıcı log tabanlı bir mesaj akışı sunucusu.
- Yüksek throughput, düşük gecikme ve Rust'ın derlenen bir dil olarak öngörülebilir kaynak kullanımı.
- Çoklu stream, topic ve partition desteği ile çeşitli taşıma protokollerini destekleme.
- RESTful API, farklı diller için istemci SDK'leri ve ikili verilerle doğrudan çalışma.
- Sunucu özelliklerinin yapılandırılabilmesi, consumer offset'lerinin sunucuda saklanması ve mesaj polling için çeşitli yöntemler.
- Mesaj sıralaması ve yatay ölçekleme için consumer group'lar, mesaj süresi dolma ve deduplication özellikleri.
- Tüm taşıma protokolleri için TLS desteği, isteğe bağlı veri şifreleme ve mesaj header desteği.
- Akış sunucusunu yönetmek için yerleşik CLI ve benchmark uygulaması, tek bir binary olarak dağıtım.
Yol haritası
- GitHub Trending sayfasında yer aldıktan sonra kullanıcılarla yeni özellikler üzerine tartışmalar yapıldı.
- Clustering, düşük seviyeli I/O ve çekirdek başına thread mimarisiyle performans ve güvenilirliğin artırılması hedefleniyor.
- Raft mutabakat mekanizması üzerinde deneyler,
io_uringile I/O işlerinin iyileştirilmesi vemonoioruntime'ının kullanılması planlanıyor.
Gelecek
- Genel amaçlı bir mesaj akışı platformu oluşturmak ve OS ile donanım sınırlarını zorlamak hedefleniyor.
- Kullanımı kolay, birleşik bir platform olarak farklı programlama dillerini, CLI'yi ve web UI'yi destekleme planı var.
- Topluluktan gelen geri bildirim ve fikirlerle gelişmeye devam etmesi amaçlanıyor.
GN⁺'un görüşü
- Iggy.rs, yüksek performans ve düşük gecikmeyi hedefleyen Rust tabanlı bir mesaj akışı platformu.
- Açık kaynak bir proje olarak, dünyanın dört bir yanındaki geliştiricilerin gönüllü katılımı ve katkılarıyla sürekli büyüyor.
- Clustering, düşük seviyeli I/O optimizasyonu ve çekirdek başına thread mimarisi gibi yenilikçi teknolojilerle dağıtık sistemlerin performans sınırlarını aşmayı hedefleyen iddialı yaklaşımı ilgi çekici; bu alana ilgi duyanlar için oldukça faydalı bir proje.
1 yorum
Hacker News yorumları
monoioseçimine şaşırıldığı; bunun nightly derleyici gerektirdiği ve proje bakımı açısından iyi bir tercih olmadığı düşünüldüğü belirtiliyor.