Server baru ini bertujuan untuk mencapai efisiensi, keandalan, dan skalabilitas yang tinggi. Dendrite mengungguli Synapse, memerlukan lebih sedikit memori untuk beroperasi, dan dapat ditingkatkan melalui penyeimbangan beban di beberapa node. Arsitektur Dendrite mendukung penskalaan horizontal dan didasarkan pada pemisahan penangan dalam bentuk layanan mikro, di mana setiap instans layanan mikro memiliki tabelnya sendiri di database. Penyeimbang beban mengirimkan panggilan ke layanan mikro. Untuk memparalelkan operasi dalam kode, thread (go rutin) digunakan, yang memungkinkan Anda menggunakan sumber daya semua inti CPU tanpa membaginya menjadi proses terpisah.
Dendrit mendukung dua mode: monolitik dan polilit. Dalam mode monolitik, semua layanan mikro dikemas dalam satu file yang dapat dieksekusi, dijalankan dalam satu proses, dan berinteraksi langsung satu sama lain. Dalam mode multi-komponen (cluster), layanan mikro dapat diluncurkan secara terpisah, termasuk didistribusikan ke berbagai node. Interaksi komponen di
mode multi-komponen dilakukan menggunakan API dan platform HTTP internal
Pengembangan dilakukan berdasarkan spesifikasi protokol Matrix dan menggunakan dua rangkaian pengujian - pengujian yang umum untuk Synapse
Tahap pengujian beta menunjukkan bahwa Dendrite siap untuk implementasi awal dan transisi ke pengembangan dengan rilis baru yang dibentuk secara berkala. Di antara rilis, skema penyimpanan data dalam database kini akan diperbarui (tidak seperti menginstal irisan dari repositori, konten database tidak akan hilang setelah pembaruan). Perubahan yang merusak kompatibilitas, mengubah struktur database, atau memerlukan perubahan konfigurasi hanya akan ditawarkan dalam rilis besar. Dendrite saat ini direkomendasikan untuk digunakan dalam mode monolitik bersama dengan DBMS PostgreSQL untuk membuat server rumah kecil dan node P2P. Penggunaan SQLite belum disarankan karena masalah penanganan operasi bersamaan yang belum terselesaikan.
Fitur-fitur yang belum diterapkan di Dendrite antara lain konfirmasi penerimaan pesan, tanda baca, notifikasi push, OpenID, pengikatan email, pencarian sisi server, direktori pengguna, daftar abaikan pengguna, pembuatan grup dan komunitas, penilaian kehadiran online pengguna, input tamu, interaksi dengan jaringan pihak ketiga.
Tersedia untuk digunakan adalah fungsionalitas dasar untuk ruang obrolan (pembuatan, undangan, aturan otentikasi), sarana federasi peserta dalam ruang, sinkronisasi acara setelah kembali dari offline, akun, profil, indikasi panggilan, pengunduhan dan pengunggahan file (Media API), mengedit pesan, ACL, pengikatan tag, dan bekerja dengan daftar perangkat dan kunci untuk enkripsi ujung ke ujung.
Mari kita ingat bahwa platform untuk mengatur komunikasi terdesentralisasi Matrix menggunakan HTTPS+JSON sebagai transportasi dengan kemungkinan menggunakan WebSockets atau protokol berdasarkan
Tidak ada satu titik kegagalan atau kontrol pesan di seluruh jaringan. Semua server yang dicakup dalam diskusi setara satu sama lain.
Setiap pengguna dapat menjalankan server mereka sendiri dan menghubungkannya ke jaringan umum. Hal ini dimungkinkan untuk dibuat
mengatur telekonferensi, melakukan panggilan suara dan video. Ini juga mendukung fitur-fitur canggih seperti pemberitahuan pengetikan, evaluasi kehadiran online pengguna, konfirmasi baca, pemberitahuan push, pencarian sisi server, sinkronisasi riwayat dan status klien.
Sumber: opennet.ru