環境内のシステム間でデータとビジネス プロセスを調整するために、企業内でサービス バス アーキテクチャを採用することを検討しています。
私たちの状況は典型的です。請求、在庫などのために内部システムにメッセージを送信する顧客向け Web アプリケーションです。これらのシステムのほとんどまたはすべてに共通するビジネス エンティティがいくつかあります。これらの各システムは、独自のデータベースでこれらのエンティティの独自のバージョンを維持します。
サービス バスの概念に適用すると、顧客の Web ポータルから注文を表すメッセージをバスに発行できます。このメッセージは、関連する各システム (請求、在庫など) によって消費され、対応する顧客レコードが独自のデータベースに作成されます。ただし、これらの内部システムの 1 つが注文ステータスに関するメッセージを発行する必要がある場合、独自のデータベースから注文 ID を保持します。Web ポータルがそのメッセージを消費する必要がある場合、内部システムから送信された注文 ID を Web ポータル データベースに保存された注文 ID と関連付ける方法がわかりません。
同等のエンティティがシステム間でどのように相関しているかを本質的に認識しているシステムは他にないため、システムがメッセージに含まれる ID をそれに関連する ID に変換できるようにするために、何らかのタイプのマッピング メカニズムを導入する必要があるようです。たとえば、あるシステムから別のシステムに ID をマップするデータベース テーブルを作成できます。このテーブルを照会して、ターゲット システムの適切な ID を取得できます。私たちのビジネスは現在、エンティティ集約やその他の「360ビュー」タイプのリポジトリを利用して、共通のエンティティ情報の単一の信頼できるソースとして機能し、そこからユニバーサルIDをすべてのシステム間で受け渡し、使用することはできません.
このようなエンティティ マッピング アプローチをサービス バスの実装に使用することは有効なアプローチですか? もしそうなら、設計を導くための確立されたガイドラインはありますか? そうでない場合は、サービス バスを介した統合を促進するために、システム全体でエンティティをリンクするための代替アプローチについて聞くことに興味があります。
PS: それが役に立てば、私は現在、バスを構築するための MassTransit フレームワークを評価しているので、それに固有の情報があれば、それも大歓迎です。