Az új szerver célja a nagy hatékonyság, megbízhatóság és skálázhatóság elérése. A dendrit teljesítménye felülmúlja a Synapse-t, működéséhez lényegesen kevesebb memóriára van szükség, és a terheléselosztás révén több csomóponton is méretezhető. A Dendrite architektúra támogatja a vízszintes skálázást, és a kezelők mikroszolgáltatások formájában történő szétválasztásán alapul, ahol minden mikroszolgáltatás-példánynak saját táblája van az adatbázisban. A terheléselosztó hívásokat küld a mikroszolgáltatásokhoz. A kódban a műveletek párhuzamosításához szálakat (go rutinokat) használnak, amelyek lehetővé teszik az összes CPU mag erőforrásainak használatát anélkül, hogy azokat külön folyamatokra osztanák fel.
A dendrit két módot támogat: monolit és polilit. Monolit módban az összes mikroszolgáltatás egyetlen végrehajtható fájlba van csomagolva, egyetlen folyamatban hajtják végre, és közvetlenül kommunikálnak egymással. Többkomponensű (fürt) módban a mikroszolgáltatások külön-külön indíthatók, beleértve a különböző csomópontok között elosztva. A komponensek kölcsönhatása
A többkomponensű mód a belső HTTP API és platform segítségével történik
A fejlesztés a Matrix protokoll specifikációi alapján és két tesztcsomag felhasználásával történik - a Synapse közös tesztjei
A béta tesztelési szakasz azt jelzi, hogy a Dendrite készen áll a kezdeti megvalósításra és a fejlesztésre való átállásra, rendszeresen megjelenő új kiadásokkal. A kiadások között most frissül az adatbázisban lévő adattárolási séma (ellentétben a szeletek telepítésével a repositoryból, az adatbázis tartalma a frissítés után nem vész el). A visszamenőleges kompatibilitást megsértő, az adatbázis szerkezetét módosító vagy konfigurációs változtatásokat igénylő változtatások csak a főbb kiadásokban lesznek felajánlva. A Dendritet jelenleg monolitikus módban ajánljuk a PostgreSQL DBMS-sel együtt, kis otthoni szerverek és P2P csomópontok létrehozásához. Az SQLite használata még nem javasolt az egyidejű műveletek kezelésével kapcsolatos megoldatlan problémák miatt.
A Dendrite-ben még nem implementált funkciók közé tartozik az üzenetek fogadásának visszaigazolása, olvasási jelzések, push értesítések, OpenID, e-mail-összerendelés, szerveroldali keresés, felhasználói címtár, felhasználói mellőzési listák, csoportok és közösségek létrehozása, a felhasználók online jelenlétének értékelése, vendégbevitel, interakció harmadik felek hálózataival.
Használhatóak a chatszobák alapvető funkciói (létrehozás, meghívások, hitelesítési szabályok), a résztvevők összevonásának módjai a szobákban, az események szinkronizálása offline állapotból való visszatérés után, fiókok, profilok, tárcsázás jelzése, fájlok letöltése és feltöltése (Media API), üzenetek, ACL-ek szerkesztése, címke-kötés, valamint eszközlisták és kulcsok kezelése a végpontok közötti titkosításhoz.
Emlékezzünk vissza, hogy a Matrix a decentralizált kommunikáció megszervezésének platformja a HTTPS+JSON-t használja átvitelként, amely képes WebSockets vagy azokon alapuló protokoll használatára.
A hálózaton nincs egyetlen hibapont vagy üzenetvezérlés. A vita tárgyát képező összes szerver egyenlő egymással.
Bármely felhasználó futtathatja saját szerverét és csatlakoztathatja azt egy közös hálózathoz. Alkotni lehet
telekonferenciák szervezése, hang- és videohívások lebonyolítása. Olyan fejlett funkciókat is támogat, mint a gépelésről szóló értesítés, a felhasználó online jelenlétének értékelése, az olvasás megerősítése, a push értesítések, a szerveroldali keresés, az előzmények és a kliens állapot szinkronizálása.
Forrás: opennet.ru