Chapter 07無料公開

Linked Application

Linked Applicationは、複数のアプリケーションをhyperlinkで遷移させるシンプルなアーキテクチャです。

よく見かける例としては、ユーザー情報のアプリケーション(仮にアカウントアプリとする)を単体で持っており、複数のアプリケーションからリンクされているようなパターンです。この場合、ユーザー情報に関する操作はアカウントアプリに一任されており、他のアプリケーションではヘッダーなどからリンクします。「Googleアカウント」はその一例です。

リンクするアプリケーションが同一ドメインで、ページごとのアプリケーションというのもありえます。この場合、ページごとが独立した開発チームとデプロイができるような状態になっています。

Linked Applicationは最も簡単に始められるMicro Frontendsのひとつで、誰しもが一度はみたことがあるのではないでしょうか。

iframe

Linked Applicationではありませんが、iframeを使ったMicro Frontendsもあり、Spotifyなどが実際に導入しています。Linked Applicationと比べると、ページの一部に埋め込んだりと、柔軟な使い方が考えられますし、枯れた技術であるため、すべてのブラウザでサポートされており、ある意味安心して使うことができます。ただし、パフォーマンスオーバーヘッド、SEOへの考慮、アクセシビリティ、エンジニアのモチベーションなど、いくつか考慮する必要のある問題もあるでしょう。

メリット・デメリット

メリット

一見ダサくみえるこのパターンの大きなメリットは、アプリケーションを完全な疎結合にできることです。Loose Couplingという意味でこのパターンに優るものはないでしょう。アプリケーションが分離されているということは、それぞれのシステムが堅牢であるということもできます。ひとつのアプリケーションが落ちていても、他のアプリケーションには影響がありません。

デメリット

一方で、分離されているがゆえに、コミュニケーションがしずらいという問題があります。その名の通り、「リンク」を通じてしかアプリケーション同士のやりとりができません。また、シンプルな設計になりますが、例えば、ヘッダーなどの共通パーツの管理が難しくなったり、チームごとに重複する開発するような冗長さもでてきてしまいます。画面遷移の体験も嬉しくありません。

まとめ

Linked Applicationは、手っ取り早く導入できるが故に、昔からよく見られるパターンの一つですが、それにはデメリットもあることを理解したいです。