Den nye server har til formål at opnå høj effektivitet, pålidelighed og skalerbarhed. Dendrite udkonkurrerer Synapse, kræver betydeligt mindre hukommelse for at fungere og kan skaleres gennem belastningsbalancering på tværs af flere noder. Dendrite-arkitekturen understøtter horisontal skalering og er baseret på adskillelse af handlere i form af mikroservices, hvor hver mikroserviceinstans har sine egne tabeller i databasen. Loadbalanceren sender opkald til mikrotjenester. For at parallelisere operationer i koden, bruges tråde (go-rutiner), som giver dig mulighed for at bruge ressourcerne i alle CPU-kerner uden at opdele dem i separate processer.
Dendrit understøtter to tilstande: monolitisk og polylit. I monolitisk tilstand er alle mikrotjenester pakket i en enkelt eksekverbar fil, eksekveret i en enkelt proces og interagerer direkte med hinanden. I multi-komponent (cluster) tilstand kan mikrotjenester lanceres separat, herunder fordelt på tværs af forskellige noder. Interaktion mellem komponenter i
multi-komponent tilstand udføres ved hjælp af den interne HTTP API og platform
Udviklingen udføres baseret på Matrix-protokolspecifikationerne og ved hjælp af to testsuiter - tests, der er fælles for Synapse
Beta-teststadiet indikerer, at Dendrite er klar til indledende implementering og overgang til udvikling med nye udgivelser med jævne mellemrum. Mellem udgivelser vil datalagringsskemaet i databasen nu blive opdateret (i modsætning til installation af udsnit fra repository, vil indholdet af databasen ikke gå tabt efter opdateringen). Ændringer, der bryder bagudkompatibiliteten, ændrer databasestrukturen eller kræver konfigurationsændringer, tilbydes kun i større udgivelser. Dendrite anbefales i øjeblikket at blive brugt i monolitisk tilstand sammen med PostgreSQL DBMS til at skabe små hjemmeservere og P2P-noder. Brugen af SQLite anbefales endnu ikke på grund af uløste problemer med håndtering af samtidige operationer.
Funktioner, der endnu ikke er implementeret i Dendrite, omfatter bekræftelse af meddelelseskvittering, læsemærker, push-beskeder, OpenID, e-mailbinding, søgning på serversiden, brugerindeks, ignoreringslister, oprettelse af grupper og fællesskaber, vurdering af brugers online tilstedeværelse, gæsteinput, interaktion med tredjeparts netværk.
Tilgængelig til brug er grundlæggende funktionalitet for chatrum (oprettelse, invitationer, autentificeringsregler), midler til sammenslutning af deltagere i rum, synkronisering af begivenheder efter hjemkomst fra offline, konti, profiler, opkaldsindikation, download og upload af filer (Media API), redigering af beskeder, ACL'er, tagbinding og arbejde med lister over enheder og nøgler til end-to-end kryptering.
Lad os huske på, at platformen til organisering af decentral kommunikation Matrix bruger HTTPS+JSON som en transport med mulighed for at bruge WebSockets eller en protokol baseret på
Der er ikke et enkelt fejlpunkt eller beskedkontrol på tværs af netværket. Alle servere, der er omfattet af diskussionen, er lige hinanden.
Enhver bruger kan køre deres egen server og forbinde den til et fælles netværk. Det er muligt at skabe
organisere telekonferencer, foretage tale- og videoopkald. Den understøtter også avancerede funktioner som meddelelse om indtastning, evaluering af brugers online tilstedeværelse, læsebekræftelse, push-meddelelser, søgning på serversiden, synkronisering af historik og klientstatus.
Kilde: opennet.ru