新しいサーバーは、高い効率、信頼性、拡張性を実現することを目的としています。 Dendrite はパフォーマンスにおいて Synapse を上回り、実行に必要なメモリが大幅に少なく、複数のノードにわたる負荷分散を通じて拡張できます。 Dendrite アーキテクチャは水平スケーリングをサポートしており、マイクロサービスの形式でのハンドラーの分離に基づいており、各マイクロサービス インスタンスはデータベース内に独自のテーブルを持ちます。 ロード バランサーは、マイクロサービスへの呼び出しのスケジュールを担当します。 コード内の操作を並列化するには、スレッド (go ルーチン) が使用されます。これにより、すべての CPU コアのリソースを個別のプロセスに分割せずに使用できるようになります。
Dendrite は、モノリシックとマルチコンポーネント (ポリリス) の XNUMX つのモードをサポートします。 モノリシック モードでは、すべてのマイクロサービスが XNUMX つの実行可能ファイルにリンクされ、XNUMX つのプロセスで実行され、相互に直接対話します。 マルチコンポーネント (クラスター) モードでは、マイクロサービスは、異なるノード間で間隔をあけてなど、個別に起動できます。 コンポーネントの相互作用
マルチコンポーネント モードは、内部 HTTP API とプラットフォームを使用して実行されます。
開発は Matrix プロトコルの仕様に基づいており、XNUMX つのテスト スイート (Synapse による共通テスト) を使用します。
ベータ段階は、Dendrite が初期展開の準備ができており、定期リリースで開発に移行することを示しています。 リリース間では、データベース内のデータ ストレージ スキームが更新されます (リポジトリからスライスをインストールする場合とは異なり、更新後にデータベースの内容が失われることはありません)。 下位互換性を破壊する変更、データベースの構造を変更する変更、または構成の変更を必要とする変更は、メジャー リリースでのみ提供されます。 現時点では、小規模なホームサーバーと P2P ノードを作成するには、Dendrite を PostgreSQL とモノリシック モードで使用することをお勧めします。 同時操作の処理に関する未解決の問題があるため、SQLite の使用はまだ推奨されていません。
Dendrite にまだ実装されていない機能としては、メッセージ受信確認、既読マーク、プッシュ通知、OpenID、電子メールへのリンク、サーバー側検索、ユーザー ディレクトリ、ユーザー無視リスト、グループとコミュニティの作成、ユーザーのオンライン プレゼンスの評価、ゲスト入力、サードパーティネットワークとの相互作用。
使用できるのは、チャット ルームの操作 (作成、招待、認証ルール) の基本機能、ルームへの参加者の連携手段、オフラインから戻った後のイベントの同期、アカウント、プロフィール、ダイヤル表示、ファイルのアップロードと提供 ( Media API)、メッセージの編集、ACL、タグ バインディング、エンドツーエンド暗号化のためのデバイスとキーのリストの操作。
分散通信を組織するためのプラットフォーム Matrix は、WebSocket またはそれに基づくプロトコルを使用する機能を持つトランスポートとして HTTPS + JSON を使用していることを思い出してください。
ネットワークには単一障害点やメッセージ制御はありません。 議論の対象となるすべてのサーバーは、それらの間で同等です。
どのユーザーも独自のサーバーを実行し、パブリック ネットワークに接続できます。 作成可能です
電話会議を開催したり、音声通話やビデオ通話を行ったりします。 また、入力通知、ユーザーのオンライン プレゼンス評価、既読確認、プッシュ通知、サーバー側検索、クライアント履歴、ステータス同期などの高度な機能もサポートしています。
出所: オープンネット.ru