マイクロフロントエンド間のルーティングと通信 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マイクロフロントエンド間のルーティングと通信

ルーティングオプションは構成アプローチによって異なります。フロントエンドコンポーネント間の結合を減らすことで、通信を最適化できます。

ルーティング

垂直分割でクライアント側のコンポジションを使用するアプリケーションは、サーバー側のルーティング (複数ページアプリケーション) またはクライアント側のルーティング (単一ページアプリケーション) を使用できます。UI コンポジションに混合分割を使用する場合は、ページ上のマイクロフロントエンドのより深いルーティング階層をサポートするために、クライアント側のルーティングが必要です。

エッジサイドコンポジションとサーバーサイドコンポジションを使用するアプリケーションは、サーバーサイドルーティング、または Amazon での Lambda@Edge などのエッジコンピューティングによるルーティングにより適しています CloudFront。

マイクロフロントエンド間の通信

マイクロフロントエンドアーキテクチャでは、フロントエンドコンポーネント間の結合を減らすことをお勧めします。結合を減らす方法の 1 つは、同期関数呼び出しから非同期メッセージングへの移行です。

ブラウザランタイムとユーザーインタラクションは、本質的に非同期です。イベントは、メッセージを通じてプロデューサーとコンシューマーの間で交換できます。イベントは、マイクロフロントエンド間で通信するための明確に定義されたインターフェイスを提供します。

DDD プラクティスに従ってマイクロフロントエンドの境界コンテキストを特定する場合、次のステップは境界を越えて通信する必要があるイベントを特定することです。

イベントのメッセージングメカニズムは、プラットフォームチームが提供するネイティブ DOM イベント (CustomEvents)、 JavaScript イベントエミッタ、またはリアクティブストリームライブラリです。マイクロフロントエンドはイベントを発行し、境界コンテキストに関連するイベントをサブスクライブします。この方法では、パブリッシャーとサブスクライバーが互いに認識し合う必要はありません。契約はイベント定義です。これの視覚的な表現については、「イベントアーキテクチャ図 で境界コンテキストの」の「イベントと通信」セクションを参照してください。