Den nye serveren er rettet mot å oppnå høy effektivitet, pålitelighet og skalerbarhet. Dendrite overgår Synapse, krever betydelig mindre minne for å fungere, og kan skaleres gjennom belastningsbalansering på tvers av flere noder. Dendrite-arkitekturen støtter horisontal skalering og er basert på separasjon av behandlere i form av mikrotjenester, hvor hver mikrotjenesteinstans har sine egne tabeller i databasen. Lastbalanseren sender anrop til mikrotjenester. For å parallellisere operasjoner i koden, brukes tråder (go-rutiner), som lar deg bruke ressursene til alle CPU-kjerner uten å dele dem inn i separate prosesser.
Dendrite støtter to moduser: monolittisk og polylitt. I monolitisk modus er alle mikrotjenester pakket i en enkelt kjørbar fil, utført i en enkelt prosess og samhandler direkte med hverandre. I multi-komponent (cluster) modus kan mikrotjenester lanseres separat, inkludert distribuert på tvers av forskjellige noder. Samspill mellom komponenter i
multi-komponent modus utføres ved hjelp av den interne HTTP API og plattform
Utviklingen utføres basert på Matrix-protokollspesifikasjonene og ved hjelp av to testsuiter - tester felles for Synapse
Beta-teststadiet indikerer at Dendrite er klar for innledende implementering og overgang til utvikling med nye utgivelser med jevne mellomrom. Mellom utgivelsene vil datalagringsskjemaet i databasen nå bli oppdatert (i motsetning til å installere skiver fra depotet, vil ikke innholdet i databasen gå tapt etter oppdateringen). Endringer som bryter bakoverkompatibilitet, endrer databasestrukturen eller krever konfigurasjonsendringer, tilbys kun i større utgivelser. Dendrite anbefales for øyeblikket å brukes i monolitisk modus i forbindelse med PostgreSQL DBMS for å lage små hjemmeservere og P2P-noder. Bruk av SQLite anbefales ennå ikke på grunn av uløste problemer med håndtering av samtidige operasjoner.
Funksjoner som ennå ikke er implementert i Dendrite inkluderer bekreftelse av meldingskvittering, lesemerker, push-varslinger, OpenID, e-postbinding, søk på serversiden, brukerkatalog, bruker ignoreringslister, opprette grupper og fellesskap, vurdering av brukernes tilstedeværelse på nettet, gjesteinndata, interaksjon med tredjepartsnettverk.
Tilgjengelig for bruk er grunnleggende funksjonalitet for chatterom (oppretting, invitasjoner, autentiseringsregler), midler for sammenslutning av deltakere i rom, synkronisering av hendelser etter retur fra offline, kontoer, profiler, oppringningsindikasjon, nedlasting og opplasting av filer (Media API), redigering av meldinger, tilgangskontrollister, tagbinding og arbeid med lister over enheter og nøkler for ende-til-ende-kryptering.
La oss huske at plattformen for organisering av desentralisert kommunikasjon Matrix bruker HTTPS+JSON som en transport med mulighet for å bruke WebSockets eller en protokoll basert på
Det er ikke noe enkelt punkt for feil eller meldingskontroll over nettverket. Alle servere som dekkes av diskusjonen er likeverdige med hverandre.
Enhver bruker kan kjøre sin egen server og koble den til et felles nettverk. Det er mulig å lage
organisering av telefonkonferanser, foreta tale- og videosamtaler. Den støtter også avanserte funksjoner som varsling om skriving, evaluering av brukerens online tilstedeværelse, lesebekreftelse, push-varslinger, søk på serversiden, synkronisering av historikk og klientstatus.
Kilde: opennet.ru