Uuden palvelimen tavoitteena on korkea tehokkuus, luotettavuus ja skaalautuvuus. Dendriitti toimii paremmin kuin Synapse, vaatii huomattavasti vähemmän muistia toimiakseen ja voi skaalata kuormituksen tasapainottamisen kautta useiden solmujen välillä. Dendrite-arkkitehtuuri tukee vaakasuuntaista skaalausta ja perustuu käsittelijöiden erottamiseen mikropalveluiden muodossa, jossa jokaisella mikropalveluinstanssilla on omat taulukonsa tietokannassa. Kuormantasaaja lähettää puhelut mikropalveluihin. Toimintojen rinnastamiseksi koodissa käytetään säikeitä (go-rutiineja), joiden avulla voit käyttää kaikkien CPU-ytimien resursseja jakamatta niitä erillisiin prosesseihin.
Dendriitti tukee kahta tilaa: monoliitti ja polyliitti. Monoliittisessa tilassa kaikki mikropalvelut pakataan yhteen suoritettavaan tiedostoon, suoritetaan yhdessä prosessissa ja ovat suoraan vuorovaikutuksessa toistensa kanssa. Monikomponenttitilassa (klusteritilassa) mikropalvelut voidaan käynnistää erikseen, mukaan lukien hajautettuina eri solmuille. Komponenttien vuorovaikutus sisällä
monikomponenttitila suoritetaan sisäisen HTTP API:n ja alustan avulla
Kehitys tapahtuu Matrix-protokollan spesifikaatioiden perusteella ja käyttämällä kahta testisarjaa - Synapselle yhteisiä testejä
Beta-testausvaihe osoittaa, että Dendrite on valmis ensimmäiseen käyttöönottoon ja siirtymiseen kehitysvaiheeseen uusien julkaisujen kanssa. Julkaisujen välillä tietokannan tallennusmalli päivitetään nyt (toisin kuin arkistosta osia asennettaessa, tietokannan sisältö ei katoa päivityksen jälkeen). Muutoksia, jotka rikkovat taaksepäin yhteensopivuuden, muuttavat tietokannan rakennetta tai edellyttävät kokoonpanomuutoksia, tarjotaan vain suurissa julkaisuissa. Dendriittiä suositellaan tällä hetkellä käytettäväksi monoliittisessa tilassa yhdessä PostgreSQL DBMS:n kanssa pienten kotipalvelimien ja P2P-solmujen luomiseksi. SQLiten käyttöä ei vielä suositella, koska samanaikaisten toimintojen käsittelyssä on ratkaisemattomia ongelmia.
Ominaisuuksia, joita ei ole vielä otettu käyttöön Dendritessä, ovat viestien vastaanottamisen vahvistukset, lukumerkit, push-ilmoitukset, OpenID, sähköpostin sidonta, palvelinpuolen haku, käyttäjähakemisto, käyttäjien ohituslistat, ryhmien ja yhteisöjen luominen, käyttäjien online-läsnäolon arviointi, vieraiden syötteet, vuorovaikutus kolmannen osapuolen verkkojen kanssa.
Käytettävissä ovat chat-huoneiden perustoiminnot (luominen, kutsut, todennussäännöt), välineet osallistujien yhdistämiseen huoneissa, tapahtumien synkronointi offline-tilasta palaamisen jälkeen, tilit, profiilit, numeron osoitus, tiedostojen lataaminen ja lataaminen (Media API), viestien muokkaaminen, ACL-luettelot, tunnisteiden sidonta ja laite- ja avainten luetteloiden käsittely päästä päähän -salausta varten.
Muistetaan, että hajautetun viestinnän organisointialusta Matrix käyttää HTTPS+JSON-siirtona, jossa on mahdollisuus käyttää WebSocketsia tai siihen perustuvaa protokollaa.
Verkossa ei ole yhtä vikakohtaa tai viestien hallintaa. Kaikki keskustelun piiriin kuuluvat palvelimet ovat keskenään samanarvoisia.
Jokainen käyttäjä voi käyttää omaa palvelintaan ja yhdistää sen yhteiseen verkkoon. On mahdollista luoda
puhelinkonferenssien järjestäminen, ääni- ja videopuheluiden soittaminen. Se tukee myös sellaisia edistyneitä ominaisuuksia, kuten ilmoitus kirjoittamisesta, käyttäjän online-läsnäolon arviointi, lukuvahvistus, push-ilmoitukset, palvelinpuolen haku, historian ja asiakkaan tilan synkronointi.
Lähde: opennet.ru