Dendrite është një server komunikimi që po zhvillohet nga ekipi i Matrix dhe pozicionohet si një implementim i gjeneratës së dytë i komponentëve të serverit Matrix.
Ndryshe nga serveri i referencës Synapse i shkruar në Python, kodi Dendrite është zhvilluar në Go. Të dy zbatimet zyrtare shpërndahen nën licencën Apache 2.0.
Si pjesë e projektit Ruma, është duke u zhvilluar një version i veçantë i serverit Matrix në gjuhën Rust, i cili shpërndahet nën licencën MIT.
Serveri i ri synon të arrijë efikasitet të lartë, besueshmëri dhe shkallëzueshmëri.
Rreth Dendrite
Dendriti është përpara Synapse për sa i përket performancës, kërkon shumë më pak memorie për të funksionuar dhe mund të shkallëzohet duke balancuar ngarkesën nëpër nyje të shumta.
Arkitektura Dendrite mbështet shkallëzimin horizontal dhe bazohet në ndarjen e kontrolluesve në formën e mikroshërbimeve, ku çdo instancë e një mikroshërbimi ka tabelat e veta në bazën e të dhënave.
Balancuesi i ngarkesës është përgjegjës për dërgimin e thirrjeve në mikrosherbime. Threads (rutinat go) përdoren për të paralelizuar operacionet në kod, të cilat lejojnë që burimet e të gjitha bërthamave të CPU të përdoren pa i ndarë ato në procese të ndara.
Dendriti mbështet punën në dy mënyra: monolitike dhe shumëkomponente (politike).
- Në mënyrën monolit, Të gjitha mikro-shërbimet janë të lidhura në një skedar të ekzekutueshëm, ekzekutohen në një proces dhe bashkëveprojnë drejtpërdrejt me njëri-tjetrin.
- Në modalitetin me shumë përbërës (kllaster), mikrosherbimet mund të lëshohen veçmas, madje edhe me shumëllojshmëri në nyje të ndryshme. Ndërveprimi i përbërësit në modalitetin shumë përbërës kryhet duke përdorur HTI API të brendshëm dhe platformën Apache Kafka.
Zhvillimi kryhet bazuar në specifikimet e protokollit Matrix dhe duke përdorur dy grupe testesh: testet e zakonshme sytest me Synapse dhe kompletin e ri të Komplementit.
Në fazën aktuale të zhvillimit, Dendrite kalon me sukses 56% të testeve të API-t klient-server dhe 77% të testeve të API-t të federatës, ndërsa mbulimi aktual i funksionalitetit vlerësohet në 70% për API-n klient-server dhe 95% për API-n e federatës.
Faza beta tregon që Dendrite është gati për vendosjen fillestare dhe kalimin në zhvillim me versione të reja të rregullta. Midis versioneve, skema e ruajtjes së bazës së të dhënave tani do të përditësohet (ndryshe nga instalimi i fragmenteve nga depoja, pas përditësimit, përmbajtja e bazës së të dhënave nuk do të humbasë).

Ndryshimet që prishin pajtueshmërinë e prapambetur, ndryshojnë strukturën e bazës së të dhënave ose kërkojnë ndryshime të konfigurimit do të ofrohen vetëm në botimet kryesore.
Aktualisht, përdorimi i Dendrite në modalitetin monolit me PostgreSQL DBMS rekomandohet për krijimin e serverave të vegjël shtëpiakë dhe nyjeve P2P. SQLite nuk rekomandohet ende për shkak të problemeve të pazgjidhura me trajtimin e operacioneve të njëkohshme.
Karakteristikat që nuk janë zbatuar ende në Dendrite përfshijnë : konfirmimet e mesazheve, faturat e leximit, njoftimet push, OpenID, lidhjen e email-it, kërkimin në anën e serverit, direktorinë e përdoruesit, listat e injorimit të përdoruesve, krijimin e grupeve dhe komuniteteve, vlerësimin e pranisë online të një përdoruesi, kontributin e mysafirëve dhe ndërveprimin me rrjetet e palëve të treta.
Funksionaliteti themelor për funksionimin e dhomave të bisedës (krijimi, ftesat, rregullat e vërtetimit), mjetet e federatës së pjesëmarrësve në dhoma, sinkronizimi i ngjarjeve pas kthimit nga linja, llogaritë, profilet, treguesi i thirrjes, shkarkimi dhe ngarkimi i Skedarët e redaktimit (Media API) janë të disponueshëm për përdorimin e mesazheve, ACL, etiketimin dhe pajisjen e kodimit nga fundi në fund dhe listat e çelësave.
Kujtojmë se platforma Matrix për organizimin e komunikimeve të decentralizuara përdor HTTPS + JSON si protokoll transporti, me aftësinë për të përdorur WebSockets ose një protokoll të bazuar në CoAP + Noise. Sistemi është strukturuar si një bashkësi serverash që mund të bashkëveprojnë me njëri-tjetrin dhe të kombinohen në një rrjet të përbashkët të decentralizuar.
Mesazhet replikohen në të gjithë serverët me të cilët janë të lidhur pjesëmarrësit në mesazhe. Mesazhet përhapen midis serverëve në një mënyrë të ngjashme me mënyrën se si përhapen komitimet midis depove të Git.
Burimi: https://matrix.org