受発注管理システムのリアーキテクチャとは?|考え方/特徴/仕組み/目的を解説

受発注管理システムのリアーキテクチャは、発注と受注の責務を整理し、取引先との連携を段階的に見直す取り組みです。

背景には、取引先ごとにEDIやWeb-EDIの仕様が異なり、取引先を1社追加するたびに受発注システム全体の改修とリグレッションテストが必要になる、という事情があります。さらに、発注を担当する部署の機能と受注を担当する部署の機能が同じコードベースに同居していると、片方の変更がもう片方の挙動に予期せぬ影響を及ぼし、リリースのたびに検証範囲が膨らんでいきます。

  • 分解:発注・受注ドメインの境界の整理
  • 連携:API-firstとイベント駆動の条件の確認
  • 判断:目的と隣接施策との違いの比較

このテーマの全体像は、以下の記事で確認できます。

▼全体ガイドの記事
・受発注管理システムのリアーキテクチャの完全ガイド

受発注管理システムのリアーキテクチャの定義と位置づけ

受発注管理システムのリアーキテクチャの全体像を確認するエンジニア

受発注管理システムのリアーキテクチャは、業務システムを刷新・更改・リニューアルする取り組みの一種ですが、着目する対象がアーキテクチャそのものである点が異なります。

起点になるのは画面や契約更改ではなく、モノリス構造・密結合という技術的負債そのものです。これを出発点に、構造を設計し直すことを指します。

モダナイゼーションの5手法のうち構造設計の範囲

受発注管理システムのモダナイゼーションは、リホスト、リプラットフォーム、リファクタリング、リビルド、リプレースの5つの手法を並べて扱う総論です。

受発注管理システムのリアーキテクチャは、このうちリファクタリングとリビルドをさらに掘り下げた取り組みです。モノリスをマイクロサービスへどう分解し、ドメイン駆動設計とAPI-first設計に基づいてどう構造を組み替えるかという「構造の設計」に、焦点を絞っています。

他の手法も含めて比較する段階では、まずモダナイゼーション全体を整理するのが適切です。

刷新・更改・リニューアルとの起点の違い

受発注管理システムのリアーキテクチャは、刷新・更改・リニューアルと比べて、何を起点に始めるかが異なります。

  • 刷新:稟議・予算承認・部門間の合意形成という経営判断が起点
  • 更改:保守契約の満了やハードウェアのリース期限という契約上の外圧が起点
  • リニューアル:取引先の発注画面や社内の入力画面といった操作体験の見直しが中心
  • リアーキテクチャ:画面の裏側にある構造、つまりモノリスの密結合そのものが起点。UIデザインには踏み込まない

予算承認のプロセスや画面刷新を主な目的とする場合は、刷新やリニューアルの取り組みとして整理したほうが検討しやすくなります。

ポイント

刷新・更改・リニューアルとは起点が違い、モノリスの密結合そのものを対象にするかどうかで区別します。画面や予算承認が主目的なら、刷新やリニューアルとして扱うほうが適しています。

モノリスを発注・受注ドメインへ分解する仕組み

発注ドメインと受注ドメインの境界設計を検討するチーム

受発注管理システムで分解の要になるのは、自社が仕入先へ発注する「発注ドメイン」と、自社が得意先から受注する「受注ドメイン」という、異なる2つのドメインを明確に切り分けることです。この2つを技術の層ではなく、ビジネスのドメイン単位でサービスに分けることは、他の個別システム系リアーキテクチャにはない、受発注領域特有の論点です。

発注ドメインと受注ドメインのBounded Context分割

ドメイン駆動設計では、特定のドメインモデルが適用される明確な境界をBounded Contextと呼びます。受発注管理システムでは、機能を取引先マスタ管理、商品カタログ、発注受付といった単位に分けます。

受注処理、在庫引当、出荷・フルフィルメントについても、それぞれが独立したデータとビジネスロジックを持つように設計します。各サービスに単一責任の原則を持たせると、機能変更の影響を狭い範囲にとどめられます。

開発者と業務側が同じ言葉で同じ対象を指せるよう、ユビキタス言語をコンテキストごとに統一しておくと、要件のすり合わせで生じる曖昧さを減らせます。

ストラングラーフィグパターンによる段階的な切り出し

モノリスをマイクロサービスへ分解するとき、既存システムを一度に置き換えるビッグバン移行はリスクが大きいです。既存の受発注業務が止まれば、取引先への影響が直接及びます。

多くの現場では、機能を少しずつ新しいサービスへ切り出し、旧システムと並行して稼働させるストラングラーフィグパターンが採用されます。

まず発注受付や在庫引当など、影響範囲を見極めやすい機能から着手します。投資対効果(ROI)を保ちながら構造を組み替えていく進め方は、取引先が多く関わる受発注業務で現実的です。

ポイント

分解の単位は技術の層ではなく、発注ドメインと受注ドメインというビジネスの境界に置きます。ビッグバンを避け、取引先への影響を抑えながら段階的に切り出すことが前提になります。

API-first設計によるEDI/Web-EDI接続の再構築

取引先ごとのEDI・Web-EDI接続をAPIで再設計する様子

受発注管理システムの取引先接続には、取引先ごとに固定長、CSV、専用フォーマットなど仕様の異なるEDIやWeb-EDIが数多く残っています。

リアーキテクチャでは、こうした個別の接続をAPIゲートウェイに統合します。そのうえで、実装より前に取引先との合意事項として仕様を固定する、API-first設計を採用するのが特徴です。

実装前のAPIコントラクトの定義と合意

API-first設計では、実際のコードを書き始める前にAPIのインターフェース(コントラクト)を定義し、関係者間で合意してから開発に着手します。

フロントエンド、モバイル、バックエンドの各サービスは疎結合になり、取引先ごとに異なるデータ仕様を吸収する連携モジュールを並行して開発できるようになります。

API主導で統合を進めた組織は、従来型の個別連携よりも、システム間連携や仕様変更への対応が速く進むという調査結果も紹介されています。特に、取引先数が多い受発注システムほど、この設計思想の恩恵を受けやすいといえます。

APIゲートウェイへの接続点の集約

取引先ごとの個別のインターフェースを減らし、APIゲートウェイという単一の接続点に集約します。APIゲートウェイでは、認証、レート制限、ログを一元的に管理します。変換処理もここにまとめられます。

OpenAPIやProtocol Buffersでコントラクトを定義し、そのテストをCI/CDに組み込んでおけば、取引先の仕様変更があっても影響範囲を機械的に検知できます。

従来型の個別EDI接続を残したまま、一部だけをAPI化する構成もあります。そのため、すべてを一度にAPI化する必要はありません。

ポイント

取引先接続は、実装より前に仕様を取引先と合意して固めることが出発点です。すべてを一度にAPI化する必要はなく、一部だけを対象にする構成も選択肢になります。

イベント駆動アーキテクチャとSagaパターンによる整合性維持

発注・受注・在庫引当の分散トランザクションを整理する担当者

発注ドメインと受注ドメインを別々のマイクロサービスとデータベースに分けると、1件の注文処理が複数のサービスにまたがります。そのぶん、データの整合性を保つ仕組みが新たに必要になります。この課題には、イベント駆動アーキテクチャとSagaパターンが使われます。

発注・受注・在庫引当をまたぐ処理のイベント連携

受注が確定したあと、在庫引当、出荷指示、発注へと処理が連鎖する場合、各サービスは自分のデータベースだけを更新し、処理結果をイベントとして発行します。

他のサービスは、そのイベントを購読して自分の処理を進めます。そのため、サービス同士が直接呼び出し合う必要がなくなります。

この構成を安定させるには、Kafkaなどのイベントブローカーを介して、イベントの順序保証とべき等性を確保することが前提になります。

在庫切れなどの失敗時の補償トランザクション

複数のサービスにまたがる処理の途中で在庫切れなどのエラーが起きても、従来の単一データベースのようにロールバック1回で戻すことはできません。

そこでSagaパターンでは、それまでに実行した各サービスの処理を打ち消す補償トランザクションを、あらかじめ設計しておきます。これにより、失敗時にも整合性を保てるようにします。たとえば、在庫を戻す、仮確保していた出荷枠を解放するといった処理が補償にあたります。

イベントの消失や順序の逆転、サービスのダウンといった場合の振る舞いを、事前に検証しておく必要があります。検証しないまま運用すると、処理の流れが壊れるリスクが残ります。

ポイント

発注と受注を分けると、1件の注文が複数のサービスにまたがります。失敗時の戻し方を補償トランザクションとして事前に決め、検証しておくことが欠かせません。

リアーキテクチャで解決したい目的

受発注管理システムのリアーキテクチャで目指す状態を議論する会議

受発注管理システムのリアーキテクチャの目的は、取引先の追加や仕様変更への対応スピードを引き上げることと、モノリス構造に起因する技術的負債を解消することにあります。新しい技術を採用すること自体は、目的に含まれません。

取引先追加・仕様変更のリードタイム短縮

モノリスのままだと、取引先を1社追加するだけでも全体テストが必要になり、リリースまでのリードタイムが延び続けます。そこで発注ドメインと受注ドメインを分け、取引先接続をAPI化しておけば、新しい取引先の追加は該当する連携モジュールの開発だけで完結します。他ドメインへの影響も最小限に抑えられます。

変更のたびに全社の検証チームを巻き込まずに済むことは、事業スピードに直結します。

密結合による技術的負債の解消

発注機能を修正したつもりが、受注処理にも予期せぬ不具合が出ます。こうした密結合特有の問題は、コードの見通しを悪くし、担当者の属人化を招きます。ドメインの境界を明確にし、各サービスが単一責任を持つ構造へ組み替えると、機能追加や改修を担当チームの中で完結させられます。

ただし、境界の切り方を誤ると、サービスは分かれていても実質的に密結合のままの「分散モノリス」に陥ります。そのため、技術の刷新そのものを目的にせず、変更容易性が向上したかという成果に照らして設計を評価します。

関連する技術・取り組みとの違い

クラウドネイティブ技術と他の取り組みの関係を整理する担当者

受発注管理システムのリアーキテクチャは、サービスメッシュやKubernetesといったクラウドネイティブ技術や、パッケージ受発注システムへの置き換えと一緒に語られることが多く、混同されがちです。

それぞれの役割を切り分けて理解しておくと、投資判断がしやすくなります。

サービスメッシュ・Kubernetesは設計ではなく実行基盤

Kubernetesはマイクロサービスをコンテナとして実行・スケールさせる基盤であり、Istioなどのサービスメッシュは、サービス間通信の暗号化や可観測性を担います。

これらは、リアーキテクチャで設計したドメイン境界やAPI、イベント駆動の仕組みを本番環境で動かすための基盤です。境界の設計そのものを代わりに行うものではありません。

基盤を選ぶのは、発注・受注ドメインの境界とAPIコントラクトを固めたあとです。

パッケージ受発注システムへの置き換えとの前提の違い

自社独自の掛率計算や特別単価、業界特有のEDIフォーマット対応などは、競争優位に直結するコア業務ドメインです。こうした領域は、自社でリアーキテクチャして作り込む価値があります。

一方で、標準的な決済や一般的な在庫元帳のようなコモディティ領域は、自社で構造設計する必要はありません。パッケージやクラウドの受発注管理システムを組み込んで再利用したほうが合理的です。

どこまでを独自に作り込むコア領域とするかを見極めることが、リアーキテクチャと既製品の置き換えを使い分ける出発点になります。

受発注管理システムのリアーキテクチャ導入前の確認事項

受発注管理システムのリアーキテクチャに関する疑問を確認する担当者

受発注管理システムのリアーキテクチャに着手するかどうかは、規模や取引先数だけでは決まりません。自社の体制と現在の課題に照らして、どこまでの範囲に投資するかを事前に整理しておくと、着手後の手戻りを防げます。

全面リアーキテクチャと部分的なリファクタリングの見極め

技術的負債が発注・受注のあらゆる工程に及んでいるのか、特定のEDI連携部分だけが密結合になっているのかによって、必要な投資規模は大きく異なります。一方で、課題が局所的であれば、その部分だけを先にAPI化する部分的なリファクタリングで足りることもあります。

まずは全体のドメイン境界を書き出し、今回の対象範囲を線引きします。ここが検討の出発点になります。

小規模な体制に向くモジュラーモノリス

マイクロサービス化のメリットが確実に得られるのは、開発体制が一定規模を超え、リクエスト量も相応に多い場合です。

開発者数が少なく取引量もそれほど多くない企業では、モノリスの内部をモジュール単位に整理し直すモジュラーモノリスのほうが、運用コストを抑えながら変更容易性を高められることもあります。

Kafkaなどのメッセージブローカーの運用やSagaパターンの実装には、相応のDevOps体制が必要です。そのため、体制が整わないままイベント駆動アーキテクチャを採用すると、かえって運用が不安定になるおそれがあります。

取引先数と仕様変更頻度による投資対効果の違い

取引先が多く、EDI仕様の変更や新規追加が頻繁に起きている企業ほど、API-first設計によるリアーキテクチャの効果を実感しやすくなります。

取引先が数社に限られ、仕様変更もまれな場合は、現状の個別連携を残したまま、変更が集中する箇所だけを見直すほうが投資として見合うこともあります。

着手前に、直近1〜2年の取引先追加数や仕様変更対応にかかった工数を振り返っておくと、投資判断の材料になります。

ポイント

着手の判断は、規模や取引先数だけでは決まりません。取引先が多く仕様変更が頻繁か、体制がマイクロサービスの運用に耐えられるかを合わせて見て判断します。

まとめ

受発注管理システムのリアーキテクチャの要点をまとめるエンジニア

受発注管理システムのリアーキテクチャは、モノリシックな構造を発注ドメインと受注ドメインの境界に沿って組み替え、取引先接続をAPI-first設計で再構築する技術的な取り組みです。

モダナイゼーションの総論のうちリファクタリング・リビルドを深掘りし、刷新・更改・リニューアルとは異なる「構造の設計」に焦点を当てる点が特徴です。

成否を分ける境界設計と段階移行

発注・受注ドメインの境界をどこで引くか、ビッグバン移行を避けてどう段階的に切り出すかが、リアーキテクチャの成否を左右します。加えて、イベント駆動アーキテクチャやSagaパターンをどこまで採用するかも、設計判断の要になります。

基盤技術の選定は、これらの設計判断が固まったあとの工程です。順序を誤ると、分散モノリスに陥るリスクが高まります。

自社のドメイン境界の書き出し

まずは、現在の受発注業務のうち、発注に関わる処理と受注に関わる処理がどこで交差し、どの取引先接続が最も変更コストを押し上げているかを書き出してください。優先すべき境界とAPI化の範囲が明確になれば、段階移行の計画も立てやすくなります。

既製の受発注SaaSでは吸収しきれない、独自の商慣行やEDIフォーマットを抱える企業もあります。こうした企業に対して、riplaはフルスクラッチ開発の立場から、ドメイン境界の設計支援、既存システムとの連携、段階的な移行計画の策定までを支援しています。

具体的な評価軸や比較の進め方は、受発注管理システムのリアーキテクチャの選定ポイント・選び方・種類で解説しています。

▼全体ガイドの記事
・受発注管理システムのリアーキテクチャの完全ガイド

会社紹介

株式会社riplaでは、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを、構想策定・要件定義から開発・改善まで一気通貫で支援。事業会社でIT・DXを経験したプロフェッショナルによる高い要件定義力・システム設計力を活かし、事業成果の最大化に伴走します。

また、当社独自の開発テンプレート「Boxシリーズ」による標準機能の高速開発と、AI駆動開発の独自フレームワーク「GoDD」による独自機能のAI実装を組み合わせることで、低コスト・短期間で開発を実現いたします。

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。

・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>

執筆者プロフィール
張田谷凌央
張田谷凌央

株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。事業会社でIT・DXを経験したプロフェッショナルが集う株式会社riplaにおいて、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを構想策定・要件定義から開発・改善まで一気通貫で支援し、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の最大化に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。