チャットアプリケーションのシステム設計図を作成してください
フレームワークについて
このアーキテクチャ例には、11個のコンポーネントと12本の接続があります。モバイルまたはWebクライアントはロードバランサーに接続し、そこから2台のWebSocketサーバーとREST APIサーバーへ接続します。2台のWebSocketサーバーはRedis Pub/Subに接続し、RESTサーバーはKafkaに接続します。
残りの矢印は、RedisからPostgreSQLへ、またKafkaからPostgreSQL、S3、Elasticsearch、プッシュ通知へ接続しています。これらは概略的なリンクであり、永続化、インデックス作成、メディア処理、通知配信を担うアプリケーションワーカーは描かれていません。また、プレゼンス、メッセージの順序、再接続の動作も未指定です。
この図を使って、1件のメッセージがたどる経路を中心に設計について議論しましょう。送信者に成功が表示されるまでに何が起きるのか、オフラインの受信者が何を受け取るのか、再試行されたメッセージをどう処理するのかを説明するために、必要なサービスと確認応答を追加してください。こうした詳細を決める前に、規模と配信要件を明確にしてください。
含まれる内容
チャットアプリケーションのシステム設計
✦ Free preview · Sign in to use
よくある質問
いいえ。コンポーネント間の接続は示していますが、順序立てた送信、確認応答、再試行の手順までは含まれていません。オフラインユーザーへの送信など、特定のシナリオのシーケンスビューを指定してください。
この例では、Redis Pub/SubからPostgreSQLへの矢印を描いていますが、その背後にあるアプリケーションロジックは指定していません。実装前に永続化サービスを追加し、その責務を定義してください。
サンプルでは、S3 Media StoreとPush Notificationの両方がKafkaから接続されています。アップロードの開始、メディアへのアクセス、通知プロバイダー、配信失敗は描かれていません。
無料で開始。クレジットカード不要。