
109
3
●
ユーザーインターフェースから細粒度のサービスへ直接依存するこ
とを防ぎ、隠蔽する
●
細粒度のサービス呼び出しを集約する
後半の二つは、第2章で紹介したデザインパターンの一つである
Facadeパターンを、アーキテクチャレベルに拡張して適用したものと
考えることができます。
⹅
図3.3.3
マイクロサービスアーキテクチャ
ユーザーインターフェース
サービス
API
DB
サービス
API
DB
サービス
API
DB
サービス
API
DB
Column
モジュラーモノリス
マイクロサービスアーキテクチャには多くのメリットがある一方、分散
アーキテクチャに本質的に内在する複雑さや、分散トランザクションの問
題、技術的な難易度の高さなどデメリットもあります。それを理由にモノリ
スを選択することは間違った判断ではありません。モノリスの大きな課題の
一つである保守性の低下は、マイクロサービスアーキテクチャを選択せずと
も設計により解決することができます。つまり、モノリスをまとまった機能
の単位で適切にモジュール分割し、モジュール同士を疎結合な状態に保つよ
うにするのです。この考え方を基本とし、デプロイ単位としては一つであり
ながら、内部構造は独立したモジュール同士が疎結合に連携するアプリケー
ションのことをモジュラーモノリスと呼びます。