モノリスファースト

新規プロジェクトではまずモノリスで構築し、ドメイン理解が深まってからマイクロサービスに分割する戦略

アーキテクチャ設計

モノリスファーストとは

モノリスファースト (Monolith First) は、Martin Fowler が提唱したアプローチで、新規プロジェクトではまずモノリスで構築し、ドメインの理解が深まった段階でマイクロサービスに分割する戦略である。

なぜモノリスから始めるか

初期段階ではドメイン境界が不明確で、正しいサービス分割が分からない。分散システムはネットワーク、整合性、デプロイの複雑さを伴い、1〜5 人の小さなチームには過剰だ。モノリスの方が初期開発が速く、ドメインの理解が深まってから分割する方が、正しい境界でサービスを切り出せる。

モノリス → マイクロサービスの段階

Phase 1: モノリス
  1 つの Lambda に全機能

Phase 2: モジュラーモノリス
  モジュール境界を明確化、内部 API で分離

Phase 3: マイクロサービス
  モジュールを独立したサービスに分割

いつ分割するか

シグナル 説明
デプロイが遅い 小さな変更でも全体をデプロイ
チームが 2 つ以上 チーム間の調整コストが増加
スケーリング要件が異なる 注文処理と検索で負荷が違う
ドメイン境界が明確になった 注文、ユーザー、決済が独立

より深く学ぶには関連書籍が役立つ。

関連用語