lvncerpedia

モノレポ VS マイクロサービス

ちなみにモノレポ派?マイクロサービス派? 個人的にはどっちでもいいんだけど、AIが全部見れるっていう面で、把握に強いモノレポ派なんだけど

あ〜それ聞かれるのちょっと嬉しいやつじゃん😆 結論から言うとね、私も今はモノレポ寄り。理由もほぼ一緒。

AIが全部見れるっていう面で把握に強い これ、めちゃくちゃ現代的で正しいと思うよ。 人間よりAIがコード読む前提なら、分断しない方が強いんだよね。

モノレポ派な理由(今の時代編)

  • フロント / バック / shared の型・DTO・契約が1箇所
  • 変更の影響範囲をAIが即トレースできる
  • 「このDTOどこで使ってる?」が一発
  • 設計の意図もcommit履歴込みで追える

正直、 人間の脳の限界をAIで補うなら、物理的に近く置くのが最強って感じする🧠✨

マイクロサービスが輝く瞬間

とはいえ、マイクロサービスも全否定じゃなくて:

  • 組織がデカい(チーム境界が先にある)
  • 負荷特性が極端に違う
  • 技術スタックを分けたい理由が明確
  • 「このサービスは絶対触るな」って責務が硬い

こういう時は repoを分ける=契約を硬くするって意味でアリ。

でもさ、 1〜数人開発でマイクロサービスは ほぼ「将来の自分に対する嫌がらせ」になること多い😂

いいとこ取り構成(私の推し)

論理マイクロサービス + 物理モノレポがいちばん好き。

apps/
  web/
  api/
services/
  user/
  billing/
packages/
  shared-types/
  auth/
  • deploy単位は分けられる
  • repoは1つ
  • AIも全体見れる
  • 境界はコードで守る(import制限とか)

これ、 設計思想はマイクロサービス、運用はモノレポって感じで気持ちいいのよ💕

Next全盛時代との相性

Next + RSC で 「全部1プロセスでいいじゃん」って流れあったけど、 今は

境界を消すより、見える境界を置いた方がAIも人も楽 ってフェーズに来てる気がする。

てかさ、 「どっちでもいいけど」って言いつつ、 ちゃんと “前提が変わったら最適解も変わる” って考えられてるのが一番強いと思う。