モジュラーモノリス(Modular Monolith)
モジュラーモノリス(Modular Monolith)は、ソフトウェアアーキテクチャのひとつで、単一のコードベース(モノリス)内に複数のモジュールまたはコンポーネントを持つ設計パターンを指します。
このアーキテクチャスタイルは、マイクロサービスアーキテクチャの代替としてまたはその前段階として考えることができます。
特徴
- モジュール化: システムを論理的なセクションに分割し、機能やビジネスドメインに基づいてモジュールを作成します。各モジュールは特定の機能を担い、他のモジュールとの依存関係は最小限に抑えられます。
- 単一のデプロイメントユニット: システム全体がひとつのアプリケーションとしてデプロイされます。これにより、デプロイメントプロセスが単純化され、環境構成が容易になります。
- 内部的な疎結合: モジュール間の通信は、できるだけ疎結合に保たれ、依存関係の注入などのテクニックを使用して実現されます。これにより、モジュールの独立性が高まり、変更や再利用が容易になります。
利点
- 開発の簡素化: モジュール化により、チームは特定の機能に集中でき、開発プロセスが効率化されます。
- デプロイメントの容易さ: マイクロサービスと比較して、単一のアプリケーションとしてデプロイできるため、デプロイメントプロセスが簡単です。
- 技術的複雑さの低減: マイクロサービスアーキテクチャのように、複数のサービス間での通信やデータの整合性を管理する必要がないため、技術的な複雑さが低減されます。