3 puan yazan GN⁺ 2024-01-06 | 1 yorum | WhatsApp'ta paylaş

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_uring ile I/O işlerinin iyileştirilmesi ve monoio runtime'ı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

 
GN⁺ 2024-01-06
Hacker News yorumları
  • İnsanların yazılıma ilk ilgi duymasını sağlayan şeyin para değil, ortak bir hedefe doğru çalışan insanların idealleri olduğu belirtiliyor. Projeye başarılar dileniyor ve alternatiflerle karşılaştırmaların projenin konumunu daha iyi anlamaya yardımcı olmasının umulduğu ifade ediliyor.
  • Blog yazısı beğenilmiş; yazarın alçakgönüllü, dürüst ve yapıcı bir proje lideri gibi göründüğü söyleniyor. Projeye başarılar dileniyor.
  • JetStream ile doğrudan rekabet eden bir ürün gibi göründüğü ve bir yıldan kısa sürede etkileyici bir ilerleme kaydettiği belirtiliyor.
  • Bu yazının Fluvio'nun kökenlerini yeniden düşündürdüğü; onlarca yıldır farklı alanlarda veri odaklı uygulamalarla yakın ilişki içinde olan küçük bir ekibin, Rust ve WebAssembly ile veri akışı konusunda heyecan duyduğu ifade ediliyor.
  • Kafka ve Fluvio'yla (Rust ile yazılmış başka bir Kafka rakibi) karşılaştırmasının net olmadığı, bunun RabbitMQ gibi bir mesaj kuyruğu da olabileceği söyleniyor.
  • Birkaç yıl önce bir arkadaşıyla birlikte Go ile benzer bir şey yapıldığı belirtiliyor.
  • Rust öğrenildikten sonra bunu denemek istendiği ve sitenin estetiğinin beğenildiği ifade ediliyor.
  • Proje ilginç bulunuyor, ancak denemeden önce birden fazla sunucu örneğinin nasıl çalıştırılacağını ve sunucular arası dosya sistemi etkileşiminin nasıl işlediğini anlamak gerektiği söyleniyor.
  • KeyDB'nin streaming özelliğiyle karşılaştırıldığında avantajının daha sağlam kalıcılık olduğu düşünülüyor.
  • monoio seçimine şaşırıldığı; bunun nightly derleyici gerektirdiği ve proje bakımı açısından iyi bir tercih olmadığı düşünüldüğü belirtiliyor.