SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2025 セッションレポート

「可変性を取り戻す」基幹システム再構築──複雑性と向き合うMonotaROのドメインモデリング実践

【13-A-7】業務理解の深化と実践~ドメインモデリングで基幹システムを捉える

  • X ポスト
  • このエントリーをはてなブックマークに追加

在庫という結節点から始めた再設計

 モノタロウがPoC(概念実証)の対象として選んだのは、基幹業務の中でも特に複雑な結節点となっていた「在庫数管理業務」だった。

 従来のシステムでは、在庫情報は共用DBの1テーブルに集約されており、「オーダー(受注)」「パーチェス(発注)」「デリバー(配送)」といった複数の業務ドメインが、それぞれの都合で同じ在庫データにアクセスする構造だった。尾髙氏はこれを「在庫が“モテモテ”状態」と表現し、笑いを交えてその課題を語る。しかし実際には、この構造が業務間の密結合を生み、変更や拡張を難しくする大きな障壁となっていた。

在庫数管理は複数ドメインの結節点。最初にここを整理することが、全体の見通しを立てる鍵になった
在庫数管理は複数ドメインの結節点。最初にここを整理することが、全体の見通しを立てる鍵になった

 こうした状況を打開すべくPoCでは、在庫の定義を「業務領域ごとの責務と関心事」に応じて再構築し、以下3つの設計方針を採用した。

  • イベント駆動による非同期連携:共用DBから脱却し、各業務ドメインがデータを独自管理。他ドメインとはメッセージベースで連携。
  • CQRSアーキテクチャの導入:内部で扱うコマンドモデルと、外部に公開するリードモデルを明確に分離。
  • イベントソーシングの適用:「1個入荷」「1個出荷」といった在庫変動を履歴として記録し、任意時点の状態を再現可能に。

 PoCの構築は完了し、アーキテクチャとしての妥当性も確認できたが、尾髙氏は「本当の試練はここから」と語る。PoCを現行システムと接続し、段階的に新アーキテクチャへ移行する必要があるからだ。

 移行は「ストラングラーフィグ・パターン」に則って進められている。これは、既存システムを段階的に新システムへ置き換えていく方式で、全体を一気に刷新するリスクを避けられるのが特徴だ。

 モノタロウではまず、既存DBの変更を検知してPoC環境に流し込む橋渡し部分(赤色の領域)を構築。そのうえで、ユースケースを1つずつ新環境(紫色)に切り出していった。4月には、そのうちの1つが本番稼働を開始予定であり、ここからが本格的な移行フェーズとなる。

既存DBを起点にイベントを発行。段階的な移行のための足場を築いた
既存DBを起点にイベントを発行。段階的な移行のための足場を築いた

 すべてのユースケースの移行が完了すれば、既存システムは段階的に廃止される。まず既存DBへの書き込みを止め、次に新環境からの書き戻しを除いて既存DBの活用を停止。最終的には、新しいリードモデルからの書き戻しも終了し、旧システムから完全に切り離される見込みだ。

 一見すると計画的に見えるこの移行だが、尾髙氏いわく「非常に骨の折れる作業」だという。モノリスと共有DBという旧来の設計を、イベント駆動やデータメッシュといったモダンな構造へ移し替えるには、ドメインロジックの再整理、インフラ整備、エンジニア教育まで含めた“総力戦”が求められるためだ。

 それでもこの挑戦は、業務の密結合をほどき、将来的にスケーラブルな構造を実現するための重要な一歩でもある。在庫という複雑性の中核にあえて踏み込んだ今回のPoCは、モノタロウが掲げる「良い構造をつくる」という意志の体現にほかならないのだ。

構造を描き、整えるための視点の往復

 在庫数管理の分離を突破口に、モノタロウでは周辺業務でもモダナイズの機運が高まってきた。ここで言うモダナイズとは、単なる技術刷新ではなく、各業務領域に最適な構造へと見直していく取り組みを指す。だが、各ドメインがボトムアップで進めていた結果、全体としての整合性には欠け、個別最適の域を出ていなかった。

 「このままではモダナイズがうまく進まない。いわゆるトップダウン的な取り組みにはなりますが、改めて全体視点から領域間の関係を整理し、“私たちが目指す基幹システムの全体像”を描き出す必要があると考えた」と尾髙氏は語る。組織全体で目線を揃えることに、大きな意味があると判断したのだ。

ボトムアップの積み上げだけでは見えにくい領域間の関係を、全体視点から再整理
ボトムアップの積み上げだけでは見えにくい領域間の関係を、全体視点から再整理

 こうして2024年10月、尾髙氏は全体構造の可視化に乗り出した。業務領域の境界を引き直し、集約や連携の関係を概念レベルで整理していく。その成果は、関係者の中にあった“なんとなくの前提”を可視化し、次にどう進めるかの議論を生む土台となった。

 この取り組みを通じて、手が回らなかったドメインにもモダナイズの波が及び、個別と全体の整合を図る「視点の上下運動」へとつながっていった。全体を描きながら、足元を見つめ直す。その繰り返しこそが、強くしなやかな基幹システムを育てていく。

 モノリスの限界を感じている。共有DBの複雑さにうんざりしている。けれど、それでも変えていきたい気持ちが湧き起こったなら──モノタロウのように、まずは自分たちの業務を言語化し、構造を見直すところから始めてみてはどうだろうか。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2025 セッションレポート連載記事一覧

もっと読む

この記事の著者

夏野 かおる(ナツノ カオル)

 博士。本業は研究者。副業で編集プロダクションを経営する。BtoB領域を中心に、多数の企業案件を手がける。専門はテクノロジー全般で、デザイン、サイバーセキュリティ、組織論、ドローンなどに強みを持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

篠部 雅貴(シノベ マサタカ)

 フリーカメラマン 1975年生まれ。 学生時代、大学を休学しオーストラリアをバイクで放浪。旅の途中で撮影の面白さに惹かれ写真の道へ。 卒業後、都内の商業スタジオにカメラマンとして14年間勤務。2014年に独立し、シノベ写真事務所を設立。雑誌・広告・WEBなど、ポートレートをメインに、料理や商品まで幅広く撮影。旅を愛する出張カメラマンとして奮闘中。 Corporate website Portfolio website

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21435 2025/06/30 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング