Nový server je zaměřen na dosažení vysoké efektivity, spolehlivosti a škálovatelnosti. Dendrite překonává Synapse, vyžaduje podstatně méně paměti k provozu a může se škálovat pomocí vyvažování zátěže mezi více uzly. Architektura Dendrite podporuje horizontální škálování a je založena na oddělení handlerů ve formě mikroslužeb, kde každá instance mikroslužby má v databázi své vlastní tabulky. Nástroj pro vyrovnávání zatížení odesílá volání mikroslužeb. Pro paralelizaci operací v kódu se používají vlákna (go rutiny), které umožňují využívat prostředky všech jader CPU bez jejich rozdělování do samostatných procesů.
Dendrite podporuje dva režimy: monolitický a polylitický. V monolitickém režimu jsou všechny mikroslužby zabaleny do jednoho spustitelného souboru, spouštěny v jediném procesu a vzájemně přímo interagují. Ve vícesložkovém (clusterovém) režimu lze mikroslužby spouštět samostatně, včetně distribuce mezi různé uzly. Interakce komponent v
vícesložkový režim se provádí pomocí interního HTTP API a platformy
Vývoj probíhá na základě specifikací protokolu Matrix a pomocí dvou testovacích sad – testů společných pro Synapse
Fáze beta testování naznačuje, že Dendrite je připraven na počáteční implementaci a přechod na vývoj s periodicky vytvářenými novými verzemi. Mezi vydáními bude nyní aktualizováno schéma ukládání dat v databázi (na rozdíl od instalace řezů z úložiště se obsah databáze po aktualizaci neztratí). Změny, které narušují zpětnou kompatibilitu, mění strukturu databáze nebo vyžadují změny konfigurace, budou nabízeny pouze v hlavních verzích. Dendrite se v současnosti doporučuje používat v monolitickém režimu ve spojení s PostgreSQL DBMS k vytváření malých domácích serverů a P2P uzlů. Použití SQLite se zatím nedoporučuje kvůli nevyřešeným problémům se zpracováním souběžných operací.
Mezi funkce, které ještě nebyly implementovány v Dendrite, patří potvrzení příjmu zpráv, značky přečtení, upozornění push, OpenID, vazba e-mailu, vyhledávání na straně serveru, adresář uživatelů, seznamy ignorovaných uživatelů, vytváření skupin a komunit, hodnocení přítomnosti uživatelů online, vstupy hostů, interakce se sítěmi třetích stran.
K dispozici jsou základní funkcionality pro chatovací místnosti (vytváření, pozvánky, autentizační pravidla), prostředky federace účastníků v místnostech, synchronizace událostí po návratu z offline, účty, profily, indikace vytáčení, stahování a nahrávání souborů (Media API), úpravy zpráv, ACL, vázání tagů a práce se seznamy zařízení a klíčů pro end-to-end šifrování.
Připomeňme, že platforma pro organizaci decentralizované komunikace Matrix využívá HTTPS+JSON jako transport s možností používat WebSockets nebo protokol založený na
V síti neexistuje jediný bod selhání nebo kontroly zpráv. Všechny servery, kterých se diskuse týká, jsou si navzájem rovnocenné.
Každý uživatel může provozovat svůj vlastní server a připojit jej ke společné síti. Je možné vytvořit
organizování telekonferencí, uskutečňování hlasových hovorů a videohovorů. Podporuje také pokročilé funkce, jako je upozornění na psaní, vyhodnocení přítomnosti uživatele online, potvrzení přečtení, upozornění push, vyhledávání na straně serveru, synchronizace historie a stavu klienta.
Zdroj: opennet.ru