Նոր սերվերն ուղղված է բարձր արդյունավետության, հուսալիության և մասշտաբայնության հասնելուն: Դենդրիտը գերազանցում է Synapse-ին, գործելու համար պահանջվում է զգալիորեն ավելի քիչ հիշողություն և կարող է մասշտաբավորվել մի քանի հանգույցներում բեռի հավասարակշռման միջոցով: Դենդրիտի ճարտարապետությունն աջակցում է հորիզոնական մասշտաբավորմանը և հիմնված է մշակողների բաժանման վրա՝ միկրոծառայությունների տեսքով, որտեղ յուրաքանչյուր միկրոծառայության օրինակ ունի իր սեփական աղյուսակները տվյալների բազայում: Բեռի հավասարակշռիչը զանգեր է ուղարկում միկրոծառայությունների: Կոդում գործողությունները զուգահեռացնելու համար օգտագործվում են թելեր (go routines), որոնք թույլ են տալիս օգտագործել պրոցեսորի բոլոր միջուկների ռեսուրսները՝ առանց դրանք առանձին պրոցեսների բաժանելու։
Դենդրիտը աջակցում է երկու ռեժիմ՝ մոնոլիտ և պոլիլիտ: Մոնոլիտ ռեժիմում բոլոր միկրոծառայությունները փաթեթավորվում են մեկ գործարկվող ֆայլում, կատարվում են մեկ գործընթացում և ուղղակիորեն փոխազդում են միմյանց հետ: Բազմաբաղադրիչ (կլաստերի) ռեժիմում միկրոծառայությունները կարող են գործարկվել առանձին, այդ թվում՝ բաշխվել տարբեր հանգույցների վրա: Բաղադրիչների փոխազդեցությունը
բազմաբաղադրիչ ռեժիմն իրականացվում է ներքին HTTP API-ի և հարթակի միջոցով
Մշակումն իրականացվում է Matrix արձանագրության բնութագրերի հիման վրա և օգտագործելով երկու թեստային փաթեթներ՝ Synapse-ի համար սովորական թեստեր:
Բետա թեստավորման փուլը ցույց է տալիս, որ Dendrite-ը պատրաստ է նախնական ներդրման և զարգացման անցնելու՝ պարբերաբար ձևավորվող նոր թողարկումներով: Թողարկումների միջև ընկած ժամանակահատվածում տվյալների բազայում տվյալների պահպանման սխեման այժմ կթարմացվի (ի տարբերություն պահոցից հատվածներ տեղադրելու, տվյալների բազայի բովանդակությունը թարմացումից հետո չի կորչի): Փոփոխությունները, որոնք խախտում են հետընթաց համատեղելիությունը, փոխում են տվյալների բազայի կառուցվածքը կամ պահանջում են կազմաձևման փոփոխություններ, կառաջարկվեն միայն հիմնական թողարկումներում: Դենդրիտը ներկայումս խորհուրդ է տրվում օգտագործել մոնոլիտ ռեժիմում՝ PostgreSQL DBMS-ի հետ համատեղ՝ փոքր տնային սերվերներ և P2P հանգույցներ ստեղծելու համար: SQLite-ի օգտագործումը դեռ խորհուրդ չի տրվում՝ միաժամանակյա գործողությունների հետ կապված չլուծված խնդիրների պատճառով:
Առանձնահատկությունները, որոնք դեռ չեն ներդրվել Dendrite-ում, ներառում են հաղորդագրությունների ստացման հաստատումներ, ընթերցման նշաններ, push ծանուցումներ, OpenID, էլփոստի կապում, սերվերի կողմից որոնում, օգտվողի գրացուցակ, օգտվողների անտեսման ցուցակներ, խմբեր և համայնքներ ստեղծելը, օգտատերերի առցանց ներկայության գնահատումը, հյուրերի մուտքերը, փոխգործակցություն երրորդ կողմի ցանցերի հետ:
Օգտագործման համար հասանելի են զրուցարանների հիմնական գործառույթները (ստեղծում, հրավերներ, նույնականացման կանոններ), սենյակներում մասնակիցների ֆեդերացիայի միջոցները, անցանցից վերադառնալուց հետո իրադարձությունների համաժամացումը, հաշիվները, պրոֆիլները, հավաքման ցուցումները, ֆայլերի ներբեռնումը և վերբեռնումը (Media API), հաղորդագրությունների խմբագրում, ACL-ներ, պիտակների կապում և սարքերի և ստեղների ցուցակների հետ աշխատանք՝ ծայրից ծայր կոդավորման համար:
Հիշեցնենք, որ ապակենտրոնացված հաղորդակցությունների Matrix-ի կազմակերպման հարթակը օգտագործում է HTTPS+JSON որպես փոխադրամիջոց՝ WebSockets-ի օգտագործման ունակությամբ կամ պրոտոկոլի հիման վրա։
Ցանցում չկա ձախողման կամ հաղորդագրությունների վերահսկման մեկ կետ: Քննարկման կողմից ընդգրկված բոլոր սերվերները հավասար են միմյանց:
Ցանկացած օգտվող կարող է գործարկել իր սեփական սերվերը և միացնել այն ընդհանուր ցանցին: Հնարավոր է ստեղծել
հեռակոնֆերանսների կազմակերպում, ձայնային և տեսազանգերի կատարում։ Այն նաև աջակցում է այնպիսի առաջադեմ գործառույթների, ինչպիսիք են մուտքագրման մասին ծանուցումը, օգտատիրոջ առցանց ներկայության գնահատումը, ընթերցման հաստատումը, push ծանուցումները, սերվերի կողմից որոնումը, պատմության և հաճախորդի կարգավիճակի համաժամացումը:
Source: opennet.ru