Ang bagong server ay naglalayong makamit ang mataas na kahusayan, pagiging maaasahan at scalability. Ang Dendrite ay higit na gumaganap sa Synapse, nangangailangan ng makabuluhang mas kaunting memory upang gumana, at maaaring mag-scale sa pamamagitan ng pag-load ng balanse sa maraming node. Sinusuportahan ng arkitektura ng Dendrite ang horizontal scaling at nakabatay ito sa paghihiwalay ng mga humahawak sa anyo ng mga microservice, kung saan ang bawat microservice instance ay may sariling mga talahanayan sa database. Ang load balancer ay nagpapadala ng mga tawag sa mga microservice. Upang iparallelize ang mga operasyon sa code, ang mga thread (go routines) ay ginagamit, na nagbibigay-daan sa iyong gamitin ang mga mapagkukunan ng lahat ng mga core ng CPU nang hindi hinahati ang mga ito sa magkakahiwalay na proseso.
Sinusuportahan ng Dendrite ang dalawang mode: monolithic at polylith. Sa monolithic mode, ang lahat ng microservices ay naka-package sa isang executable na file, isinasagawa sa isang proseso, at direktang nakikipag-ugnayan sa isa't isa. Sa multi-component (cluster) mode, ang mga microservice ay maaaring ilunsad nang hiwalay, kabilang ang ibinahagi sa iba't ibang node. Interaksyon ng mga bahagi sa
Ang multi-component mode ay isinasagawa gamit ang panloob na HTTP API at platform
Isinasagawa ang pagbuo batay sa mga detalye ng protocol ng Matrix at gamit ang dalawang test suite - mga pagsubok na karaniwan sa Synapse
Ang yugto ng pagsubok sa beta ay nagpapahiwatig na ang Dendrite ay handa na para sa paunang pagpapatupad at paglipat sa pagbuo na may mga bagong release na pana-panahong nabuo. Sa pagitan ng mga release, ang scheme ng pag-iimbak ng data sa database ay maa-update na ngayon (hindi tulad ng pag-install ng mga hiwa mula sa repository, ang mga nilalaman ng database ay hindi mawawala pagkatapos ng pag-update). Ang mga pagbabagong sumisira sa backward compatibility, nagbabago sa istraktura ng database, o nangangailangan ng mga pagbabago sa configuration ay iaalok lamang sa mga pangunahing release. Kasalukuyang inirerekomenda ang Dendrite na gamitin sa monolithic mode kasabay ng PostgreSQL DBMS upang lumikha ng maliliit na homeserver at P2P node. Ang paggamit ng SQLite ay hindi pa inirerekomenda dahil sa hindi nalutas na mga isyu sa paghawak ng mga kasabay na operasyon.
Kasama sa mga feature na hindi pa naipapatupad sa Dendrite ang mga kumpirmasyon sa pagtanggap ng mensahe, mga markang nabasa, mga push notification, OpenID, email binding, server-side search, user directory, user ignore list, paggawa ng mga grupo at komunidad, pagtatasa ng user online presence, guest inputs, pakikipag-ugnayan sa mga third-party na network.
Magagamit para sa paggamit ay ang pangunahing pag-andar para sa mga chat room (paglikha, mga imbitasyon, mga panuntunan sa pagpapatotoo), paraan ng federation ng mga kalahok sa mga silid, pag-synchronize ng mga kaganapan pagkatapos bumalik mula sa offline, mga account, profile, indikasyon sa pag-dial, pag-download at pag-upload ng mga file (Media API), pag-edit ng mga mensahe, ACL, tag binding at pagtatrabaho sa mga listahan ng mga device at key para sa end-to-end na pag-encrypt.
Alalahanin natin na ang platform para sa pag-aayos ng mga desentralisadong komunikasyon Matrix ay gumagamit ng HTTPS+JSON bilang isang transportasyon na may posibilidad na gumamit ng WebSockets o isang protocol batay sa
Walang iisang punto ng pagkabigo o kontrol ng mensahe sa buong network. Ang lahat ng mga server na sakop ng talakayan ay pantay-pantay sa bawat isa.
Ang sinumang user ay maaaring magpatakbo ng kanilang sariling server at ikonekta ito sa isang karaniwang network. Posibleng lumikha
pag-aayos ng mga teleconference, paggawa ng mga voice at video call. Sinusuportahan din nito ang mga advanced na tampok tulad ng abiso ng pag-type, pagsusuri ng presensya ng gumagamit sa online, pagkumpirma ng pagbabasa, push notification, paghahanap sa gilid ng server, pag-synchronize ng kasaysayan at katayuan ng kliyente.
Pinagmulan: opennet.ru