マイクロサービスとイベントの調達、およびサービス間のデカップリングについては、私が読んできました。私は明確ではない2つの概念があります。第1に、マイクロサービスアーキテクチャでは、各サービスを独立して開発することができます。サービス間の通信依存性をどのように考慮しますか?イベントソースを使用したEDAでのマイクロサービス通信
たとえば、サービスAとサービスBが通信する必要がある場合、Aは、Bがリッスンして行動する必要がある中央バスにイベントを送信する必要がありますが、これは多くの依存関係を作成するようです。今、私がサービスBを開発している場合、私はサービスAが生成できるすべてのイベントを知る必要があります。また、サービスAが新しいイベントを追加する場合、サービスBもその新しいイベントを処理するために変更する必要があります。これらのすべてが依存性の悪夢を作り出しているようであり、あなたは本当にそれぞれのサービスを「独自に」開発することはできないようです。
第2に、要求/応答タイプのシナリオをAPIゲートウェイまたはプロセスマネージャレベルでどのように処理しますか?最上位レベルの要求が、呼び出し元に応答を返す前に処理する必要のある一連のカスケードまたは相互依存するイベントを発生させる場合、これはマイクロサービスに適したシナリオですか?
それは意味があります。私は開発ワークフローの詳細を考えていました。今は2つの異なるサービス/プロジェクトの間に依然として依存関係がありますが、2つの別々のコードベースに居住している場合を除き、相互依存関係があれば、同期して一緒に展開する必要があります。それらを一緒に持つことは、これを管理することがはるかに難しいようです。 –
モデルデザインについては、多くのオプションがあります。 Gregor Hohpeの[Enterprise Integration Patterns](https:// www。com)は、DDDのコンテキストマッピングパターン(共有カーネル、顧客/サプライヤ、分離方法など)を見ることができます。amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683)には、モデル統合のための数多くの興味深い戦略があります。 – guillaume31
モデルデザイン、統合スタイル(非同期と同期)、および技術プロトコルは異なるが、サービスの統合に関する懸念が重複している。それらを融合させることは必ずしも容易ではありませんが、ソリューションを構築する際に念頭に置いておくべきことだと思います。 – guillaume31