Uue serveri eesmärk on saavutada kõrge efektiivsus, töökindlus ja mastaapsus. Dendriit ületab Synapse'i, vajab töötamiseks oluliselt vähem mälu ja suudab mitme sõlme vahel koormuse tasakaalustamise kaudu skaleerida. Dendrite arhitektuur toetab horisontaalset skaleerimist ja põhineb töötlejate eraldamisel mikroteenuste kujul, kus igal mikroteenuse eksemplaril on andmebaasis oma tabelid. Koormuse tasakaalustaja saadab kõned mikroteenustele. Toimingute paralleelseerimiseks koodis kasutatakse lõime (go rutiine), mis võimaldavad kasutada kõigi CPU tuumade ressursse ilma neid eraldi protsessideks jagamata.
Dendriit toetab kahte režiimi: monoliitne ja polüliit. Monoliitses režiimis on kõik mikroteenused pakitud ühte käivitatavasse faili, käivitatakse ühes protsessis ja suhtlevad üksteisega otse. Mitmekomponendilises (klastri) režiimis saab mikroteenuseid käivitada eraldi, sealhulgas jaotada erinevate sõlmede vahel. Komponentide koostoime
mitmekomponendiline režiim viiakse läbi sisemise HTTP API ja platvormi abil
Arendus toimub Matrixi protokolli spetsifikatsioonide alusel ja kasutades kahte testikomplekti - Synapse'i ühiseid teste
Beetatestimise etapp näitab, et Dendrite on valmis esmaseks juurutamiseks ja arendusele üleminekuks koos perioodiliselt moodustatavate uute väljaannetega. Väljaannete vahel uuendatakse nüüd andmebaasis olevate andmete salvestamise skeemi (erinevalt hoidlast viilude installimisest ei lähe andmebaasi sisu pärast värskendamist kaduma). Muudatusi, mis rikuvad tagasiühilduvust, muudavad andmebaasi struktuuri või nõuavad konfiguratsiooni muutmist, pakutakse ainult suuremates versioonides. Dendritit soovitatakse praegu kasutada monoliitrežiimis koos PostgreSQL DBMS-iga, et luua väikseid koduservereid ja P2P sõlme. SQLite'i kasutamine ei ole veel soovitatav, kuna samaaegsete toimingute käsitlemisel on lahendamata probleeme.
Funktsioonid, mida Dendrites pole veel rakendatud, hõlmavad sõnumite vastuvõtmise kinnitusi, lugemismärke, tõukemärguandeid, OpenID-d, e-posti sidumist, serveripoolset otsingut, kasutajate kataloogi, kasutajate ignoreerimise loendeid, rühmade ja kommuunide loomist, kasutajate veebis kohaloleku hindamist, külaliste sisestusi, suhtlemine kolmandate osapoolte võrkudega.
Kasutamiseks on saadaval jututubade põhifunktsioonid (loomine, kutsed, autentimise reeglid), ruumides osalejate liitmise vahendid, sündmuste sünkroonimine pärast võrguühenduseta naasmist, kontod, profiilid, numbrinäidud, failide alla- ja üleslaadimine (Media API), sõnumite redigeerimine, ACL-id, sildi sidumine ning seadmete loendite ja võtmetega töötamine otsast lõpuni krüptimiseks.
Meenutagem, et detsentraliseeritud side korraldamise platvorm Matrix kasutab transpordina HTTPS+JSON-i koos võimalusega kasutada WebSocketsi või sellel põhinevat protokolli.
Kogu võrgus pole ühtegi tõrkepunkti ega sõnumite kontrolli. Kõik aruteluga hõlmatud serverid on üksteisega võrdsed.
Iga kasutaja saab käitada oma serverit ja ühendada selle ühisesse võrku. Võimalik on luua
telekonverentside korraldamine, hääl- ja videokõnede tegemine. See toetab ka selliseid täiustatud funktsioone nagu tippimisest teatamine, kasutaja võrgus kohaloleku hindamine, lugemiskinnitus, tõukemärguanded, serveripoolne otsing, ajaloo ja kliendi oleku sünkroonimine.
Allikas: opennet.ru