モノリスファースト
新規プロジェクトではまずモノリスで構築し、ドメイン理解が深まってからマイクロサービスに分割する戦略
アーキテクチャ設計
モノリスファーストとは
モノリスファースト (Monolith First) は、Martin Fowler が提唱したアプローチで、新規プロジェクトではまずモノリスで構築し、ドメインの理解が深まった段階でマイクロサービスに分割する戦略である。
なぜモノリスから始めるか
初期段階ではドメイン境界が不明確で、正しいサービス分割が分からない。分散システムはネットワーク、整合性、デプロイの複雑さを伴い、1〜5 人の小さなチームには過剰だ。モノリスの方が初期開発が速く、ドメインの理解が深まってから分割する方が、正しい境界でサービスを切り出せる。
モノリス → マイクロサービスの段階
Phase 1: モノリス
1 つの Lambda に全機能
Phase 2: モジュラーモノリス
モジュール境界を明確化、内部 API で分離
Phase 3: マイクロサービス
モジュールを独立したサービスに分割
いつ分割するか
| シグナル | 説明 |
|---|---|
| デプロイが遅い | 小さな変更でも全体をデプロイ |
| チームが 2 つ以上 | チーム間の調整コストが増加 |
| スケーリング要件が異なる | 注文処理と検索で負荷が違う |
| ドメイン境界が明確になった | 注文、ユーザー、決済が独立 |
より深く学ぶには関連書籍が役立つ。