Novi poslužitelj ima za cilj postizanje visoke učinkovitosti, pouzdanosti i skalabilnosti. Dendrite nadmašuje Synapse, zahtijeva znatno manje memorije za rad i može se skalirati kroz balansiranje opterećenja na više čvorova. Dendrite arhitektura podržava horizontalno skaliranje i temelji se na odvajanju rukovatelja u obliku mikroservisa, gdje svaka instanca mikroservisa ima vlastite tablice u bazi podataka. Uravnoteživač opterećenja šalje pozive mikroservisima. Za paraleliziranje operacija u kodu koriste se niti (go rutine), koje vam omogućuju korištenje resursa svih CPU jezgri bez njihove podjele u zasebne procese.
Dendrite podržava dva načina: monolitni i polilitni. U monolitnom načinu rada sve su mikrousluge pakirane u jednu izvršnu datoteku, izvršavaju se u jednom procesu i međusobno su u izravnoj interakciji. U višekomponentnom (klasterskom) načinu rada mikroservisi se mogu pokrenuti zasebno, uključujući i distribuirati na različitim čvorovima. Međudjelovanje komponenti u
višekomponentni način rada provodi se pomoću internog HTTP API-ja i platforme
Razvoj se provodi na temelju specifikacija Matrix protokola i korištenjem dva paketa testova - testova zajedničkih za Synapse
Faza beta testiranja pokazuje da je Dendrite spreman za početnu implementaciju i prijelaz na razvoj s novim izdanjima koja se povremeno formiraju. Između izdanja, shema pohrane podataka u bazi podataka sada će se ažurirati (za razliku od instaliranja isječaka iz repozitorija, sadržaj baze podataka neće biti izgubljen nakon ažuriranja). Promjene koje prekidaju kompatibilnost sa prethodnim verzijama, mijenjaju strukturu baze podataka ili zahtijevaju promjene konfiguracije bit će ponuđene samo u glavnim izdanjima. Trenutno se preporučuje da se Dendrite koristi u monolitnom načinu rada u kombinaciji s PostgreSQL DBMS-om za stvaranje malih kućnih poslužitelja i P2P čvorova. Korištenje SQLitea još se ne preporučuje zbog neriješenih problema s rukovanjem istodobnim operacijama.
Značajke koje još nisu implementirane u Dendrite uključuju potvrde primitka poruka, oznake čitanja, push obavijesti, OpenID, povezivanje e-pošte, pretraživanje na strani poslužitelja, korisnički imenik, popise zanemarenih korisnika, stvaranje grupa i zajednica, procjenu online prisutnosti korisnika, unose gostiju, interakcija s mrežama trećih strana.
Za korištenje su dostupne osnovne funkcionalnosti za chat sobe (kreiranje, pozivnice, pravila autentifikacije), sredstva za federaciju sudionika u sobama, sinkronizacija događaja nakon povratka iz offline, računi, profili, indikacija biranja, preuzimanje i učitavanje datoteka (Media API), uređivanje poruka, ACL-ova, vezivanje oznaka i rad s popisima uređaja i ključeva za end-to-end enkripciju.
Podsjetimo, platforma za organiziranje decentraliziranih komunikacija Matrix koristi HTTPS+JSON kao transport uz mogućnost korištenja WebSockets ili protokola temeljenog na
Ne postoji jedinstvena točka kvara ili kontrola poruka preko mreže. Svi poslužitelji obuhvaćeni raspravom su međusobno jednaki.
Svaki korisnik može pokrenuti vlastiti poslužitelj i spojiti ga na zajedničku mrežu. Moguće je stvoriti
organiziranje telekonferencija, glasovnih i video poziva. Također podržava napredne značajke kao što su obavijest o tipkanju, procjena prisutnosti korisnika na mreži, potvrda čitanja, push obavijesti, pretraživanje na strani poslužitelja, sinkronizacija povijesti i statusa klijenta.
Izvor: opennet.ru