Nový server je zameraný na dosiahnutie vysokej efektivity, spoľahlivosti a škálovateľnosti. Dendrite prekonáva Synapse, vyžaduje podstatne menej pamäte na prevádzku a môže sa škálovať pomocou vyrovnávania záťaže medzi viacerými uzlami. Architektúra Dendrite podporuje horizontálne škálovanie a je založená na oddelení handlerov vo forme mikroslužieb, kde každá inštancia mikroslužby má svoje vlastné tabuľky v databáze. Nástroj na vyrovnávanie záťaže odosiela hovory do mikroslužieb. Na paralelizáciu operácií v kóde sa používajú vlákna (go rutiny), ktoré umožňujú využívať zdroje všetkých jadier CPU bez ich delenia na samostatné procesy.
Dendrite podporuje dva režimy: monolitický a polylitický. V monolitickom režime sú všetky mikroslužby zabalené do jedného spustiteľného súboru, spustené v jedinom procese a priamo medzi sebou interagujú. Vo viaczložkovom (klastrovom) režime môžu byť mikroslužby spúšťané samostatne, vrátane distribúcie medzi rôznymi uzlami. Interakcia komponentov v
viaczložkový režim sa vykonáva pomocou interného HTTP API a platformy
Vývoj prebieha na základe špecifikácií protokolu Matrix a pomocou dvoch testovacích sád – testov spoločných pre Synapse
Fáza beta testovania naznačuje, že Dendrite je pripravený na počiatočnú implementáciu a prechod na vývoj s periodicky vytváranými novými vydaniami. Medzi vydaniami sa teraz aktualizuje schéma ukladania údajov v databáze (na rozdiel od inštalácie rezov z úložiska sa obsah databázy po aktualizácii nestratí). Zmeny, ktoré narúšajú spätnú kompatibilitu, menia štruktúru databázy alebo vyžadujú zmeny konfigurácie, budú ponúkané iba vo veľkých vydaniach. Dendrite sa v súčasnosti odporúča používať v monolitickom režime v spojení s PostgreSQL DBMS na vytváranie malých domácich serverov a P2P uzlov. Použitie SQLite sa zatiaľ neodporúča kvôli nevyriešeným problémom so spracovaním súbežných operácií.
Funkcie, ktoré ešte neboli implementované v Dendrite, zahŕňajú potvrdenia prijatia správ, značky prečítania, push notifikácie, OpenID, väzbu e-mailu, vyhľadávanie na strane servera, adresár používateľov, zoznamy ignorovaných používateľov, vytváranie skupín a komunít, hodnotenie prítomnosti používateľov online, vstupy hostí, interakcie so sieťami tretích strán.
K dispozícii sú základné funkcionality pre chatovacie miestnosti (vytváranie, pozvánky, autentizačné pravidlá), prostriedky federácie účastníkov v miestnostiach, synchronizácia udalostí po návrate z offline, účty, profily, indikácia vytáčania, sťahovanie a nahrávanie súborov (Media API), editovanie správ, ACL, viazanie tagov a práca so zoznamami zariadení a kľúčov pre end-to-end šifrovanie.
Pripomeňme, že platforma na organizovanie decentralizovanej komunikácie Matrix využíva HTTPS+JSON ako transport s možnosťou využívať WebSockets alebo protokol založený na
V sieti neexistuje jediný bod zlyhania alebo kontroly správ. Všetky servery, ktorých sa diskusia týka, sú si navzájom rovnocenné.
Každý používateľ môže spustiť svoj vlastný server a pripojiť ho k spoločnej sieti. Je možné vytvoriť
organizovanie telekonferencií, uskutočňovanie hlasových hovorov a videohovorov. Podporuje aj také pokročilé funkcie, ako je upozorňovanie na písanie, vyhodnocovanie online prítomnosti používateľa, potvrdenie prečítania, upozornenia push, vyhľadávanie na strane servera, synchronizácia histórie a stavu klienta.
Zdroj: opennet.ru