Ο νέος διακομιστής στοχεύει στην επίτευξη υψηλής απόδοσης, αξιοπιστίας και επεκτασιμότητας. Ο δενδρίτης ξεπερνά το Synapse, απαιτεί σημαντικά λιγότερη μνήμη για να λειτουργήσει και μπορεί να κλιμακωθεί μέσω της εξισορρόπησης φορτίου σε πολλούς κόμβους. Η αρχιτεκτονική Dendrite υποστηρίζει οριζόντια κλιμάκωση και βασίζεται στον διαχωρισμό των χειριστών με τη μορφή microservices, όπου κάθε παράδειγμα microservice έχει τους δικούς της πίνακες στη βάση δεδομένων. Ο εξισορροπητής φορτίου αποστέλλει κλήσεις σε μικροϋπηρεσίες. Για την παραλληλοποίηση των λειτουργιών στον κώδικα, χρησιμοποιούνται νήματα (go routines), τα οποία σας επιτρέπουν να χρησιμοποιείτε τους πόρους όλων των πυρήνων της CPU χωρίς να τους χωρίζετε σε ξεχωριστές διεργασίες.
Ο δενδρίτης υποστηρίζει δύο λειτουργίες: μονολιθικό και πολυλιθικό. Στη μονολιθική λειτουργία, όλες οι μικροϋπηρεσίες συσκευάζονται σε ένα μόνο εκτελέσιμο αρχείο, εκτελούνται σε μία διαδικασία και αλληλεπιδρούν απευθείας μεταξύ τους. Σε λειτουργία πολλαπλών συστατικών (cluster), οι μικροϋπηρεσίες μπορούν να εκκινηθούν ξεχωριστά, συμπεριλαμβανομένης της διανομής σε διαφορετικούς κόμβους. Αλληλεπίδραση συστατικών σε
Η λειτουργία πολλαπλών συστατικών πραγματοποιείται χρησιμοποιώντας το εσωτερικό API και την πλατφόρμα HTTP
Η ανάπτυξη πραγματοποιείται με βάση τις προδιαγραφές του πρωτοκόλλου Matrix και χρησιμοποιώντας δύο σειρές δοκιμών - δοκιμές κοινές για το Synapse
Το στάδιο της δοκιμής beta υποδεικνύει ότι το Dendrite είναι έτοιμο για αρχική εφαρμογή και μετάβαση στην ανάπτυξη με νέες εκδόσεις που δημιουργούνται περιοδικά. Μεταξύ των εκδόσεων, το σχήμα αποθήκευσης δεδομένων στη βάση δεδομένων θα ενημερώνεται πλέον (σε αντίθεση με την εγκατάσταση τμημάτων από το χώρο αποθήκευσης, τα περιεχόμενα της βάσης δεδομένων δεν θα χαθούν μετά την ενημέρωση). Οι αλλαγές που διακόπτουν τη συμβατότητα προς τα πίσω, αλλάζουν τη δομή της βάσης δεδομένων ή απαιτούν αλλαγές διαμόρφωσης θα προσφέρονται μόνο σε μεγάλες εκδόσεις. Επί του παρόντος, ο δενδρίτης συνιστάται να χρησιμοποιείται σε μονολιθική λειτουργία σε συνδυασμό με το PostgreSQL DBMS για τη δημιουργία μικρών διακομιστών στο σπίτι και κόμβων P2P. Η χρήση του SQLite δεν συνιστάται ακόμη λόγω ανεπίλυτων προβλημάτων με τον χειρισμό ταυτόχρονων λειτουργιών.
Δυνατότητες που δεν έχουν ακόμη εφαρμοστεί στο Dendrite περιλαμβάνουν επιβεβαιώσεις λήψης μηνυμάτων, σημάδια ανάγνωσης, ειδοποιήσεις push, OpenID, δέσμευση email, αναζήτηση από την πλευρά του διακομιστή, κατάλογο χρήστη, λίστες παράβλεψης χρηστών, δημιουργία ομάδων και κοινοτήτων, αξιολόγηση της παρουσίας χρήστη στο διαδίκτυο, εισροές επισκεπτών, αλληλεπίδραση με δίκτυα τρίτων.
Διαθέσιμες προς χρήση είναι οι βασικές λειτουργίες για chat rooms (δημιουργία, προσκλήσεις, κανόνες ελέγχου ταυτότητας), μέσα συνένωσης συμμετεχόντων σε δωμάτια, συγχρονισμός συμβάντων μετά την επιστροφή από offline, λογαριασμοί, προφίλ, ένδειξη κλήσης, λήψη και μεταφόρτωση αρχείων (Media API), επεξεργασία μηνυμάτων, ACL, δέσμευση ετικετών και εργασία με λίστες συσκευών και κλειδιών για κρυπτογράφηση από άκρο σε άκρο.
Ας θυμηθούμε ότι η πλατφόρμα για την οργάνωση αποκεντρωμένων επικοινωνιών Matrix χρησιμοποιεί το HTTPS+JSON ως μέσο μεταφοράς με δυνατότητα χρήσης WebSockets ή ένα πρωτόκολλο που βασίζεται σε
Δεν υπάρχει κανένα σημείο αποτυχίας ή έλεγχος μηνυμάτων σε όλο το δίκτυο. Όλοι οι διακομιστές που καλύπτονται από τη συζήτηση είναι ίσοι μεταξύ τους.
Οποιοσδήποτε χρήστης μπορεί να τρέξει τον δικό του διακομιστή και να τον συνδέσει σε ένα κοινό δίκτυο. Είναι δυνατή η δημιουργία
διοργάνωση τηλεδιασκέψεων, πραγματοποίηση φωνητικών και βιντεοκλήσεων. Υποστηρίζει επίσης προηγμένες λειτουργίες όπως ειδοποίηση πληκτρολόγησης, αξιολόγηση της παρουσίας του χρήστη στο διαδίκτυο, επιβεβαίωση ανάγνωσης, ειδοποιήσεις push, αναζήτηση από την πλευρά του διακομιστή, συγχρονισμός ιστορικού και κατάσταση πελάτη.
Πηγή: opennet.ru