Matrix protokolünün uygulanmasına sahip bir iletişim sunucusu olan Dendrite

Dendrite , Matrix ekibi tarafından geliştirilen ve Matrix sunucu bileşenlerinin ikinci nesil uygulaması olarak konumlandırılan bir iletişim sunucusudur .

Python'da yazılan Synapse referans sunucusunun aksine Dendrite kodu Go'da geliştirildi. Her iki resmi uygulama da Apache 2.0 lisansı altında dağıtılmaktadır.

Ruma projesi kapsamında Matrix sunucusunun MIT lisansı altında dağıtılan Rust dilinde ayrı bir sürümü geliştiriliyor.

Yeni sunucu, yüksek verimlilik, güvenilirlik ve ölçeklenebilirlik sağlamayı hedefliyor.

Dendrit Hakkında

Dendrite, performans açısından Synapse'in önünde yer alıyor, çalışması için çok daha az bellek gerektiriyor ve birden fazla düğüm arasında yük dengelemesi yaparak ölçeklenebiliyor.

Dendrite mimarisi yatay ölçeklendirmeyi destekler ve denetleyicilerin mikro hizmetler şeklinde ayrılmasına dayanır; burada her bir mikro hizmet örneğinin veritabanında kendi tabloları bulunur.

Yük dengeleyici, çağrıların mikro hizmetlere gönderilmesinden sorumludur. Koddaki işlemleri paralelleştirmek için, tüm CPU çekirdeklerinin kaynaklarının ayrı işlemlere bölünmeden kullanılmasına olanak tanıyan iş parçacıkları (go rutinleri) kullanılır.

Dendrit , monolitik ve çok bileşenli (polilit) olmak üzere iki çalışma modunu destekler.

  • Monolitik modda, tüm mikro hizmetler yürütülebilir bir dosyaya bağlanır, bir süreçte çalıştırılır ve birbirleriyle doğrudan etkileşime girer.
  • Çok bileşenli modda (küme), mikro hizmetler farklı düğümlerdeki çeşitlilikle bile ayrı ayrı başlatılabilir. Çok bileşenli modda bileşenlerin etkileşimi, dahili HTTP API ve Apache Kafka platformu kullanılarak gerçekleştirilir.

Geliştirme, Matrix protokolü spesifikasyonlarına dayalı olarak ve iki test paketi kullanılarak gerçekleştirilir: Synapse ile ortak sistem testleri ve yeni Complement paketi.

Mevcut geliştirme aşamasında, Dendrite istemci-sunucu API testlerinin %56'sını ve federasyon API testlerinin %77'sini başarıyla geçerken, gerçek işlevsellik kapsamı istemci-sunucu API için %70 ve federasyon API için %95 olarak tahmin edilmektedir.

Beta aşaması, Dendrite'ın ilk dağıtıma hazır olduğunu ve düzenli yeni sürümlerle geliştirme aşamasına geçebileceğini gösterir. Sürümler arasında, veritabanı depolama şeması artık güncellenecektir (depodan parçaları yüklemekten farklı olarak, güncellemeden sonra veritabanı içeriği kaybolmayacaktır).

Geriye dönük uyumluluğu bozan, veritabanı yapısını değiştiren veya yapılandırma değişiklikleri gerektiren değişiklikler yalnızca ana sürümlerde sunulacaktır.

Şu anda, küçük ev sunucuları ve P2P düğümleri oluşturmak için PostgreSQL DBMS ile monolitik modda Dendrite kullanılması önerilmektedir . Eş zamanlı işlemleri yönetmeyle ilgili çözülmemiş sorunlar nedeniyle SQLite henüz önerilmemektedir.

Dendrite'de henüz uygulanmamış özellikler arasında şunlar yer almaktadır : mesaj onayları, okuma bildirimleri, anlık bildirimler, OpenID, e-posta bağlantısı, sunucu tarafı arama, kullanıcı dizini, kullanıcı yok sayma listeleri, grup ve topluluk oluşturma, kullanıcının çevrimiçi varlığının değerlendirilmesi, misafir girişi ve üçüncü taraf ağlarla etkileşim.

Sohbet odalarının işleyişine yönelik temel işlevler (oluşturma, davetler, kimlik doğrulama kuralları), odalarda katılımcıların birleştirilmesi araçları, çevrimdışından döndükten sonra etkinliklerin senkronizasyonu, hesaplar, profiller, arama göstergesi, dosyaların indirilmesi ve yüklenmesi (Medya API), düzenleme mesajlar, ACL'ler, etiketleme ve anahtar listeleri ve uçtan uca şifreleme cihazları kullanıma açıktır.

Hatırlatmak gerekirse, merkezi olmayan iletişimi organize etmek için kullanılan Matrix platformu, taşıma protokolü olarak HTTPS + JSON kullanır ve WebSockets veya CoAP + Noise tabanlı bir protokol kullanma olanağına sahiptir. Sistem, birbirleriyle etkileşime girebilen ve ortak bir merkezi olmayan ağda birleşebilen sunuculardan oluşan bir topluluk olarak yapılandırılmıştır.

Mesajlar , mesajlaşmaya katılanların bağlı olduğu tüm sunuculara çoğaltılır . Mesajlar, Git depoları arasında commit'lerin yayılmasına benzer bir şekilde sunucular arasında yayılır.

Kaynak: https://matrix.org


Google'da tercih edilen kaynak olarak ekleyin.