私は現在、アプリケーションの 1 つのコンポーネントが特定のイベントに基づいて他の複数のシステム コンポーネントと対話する必要があるアプリケーションに取り組んでいます。これらのイベントは、さまざまなトリガーに基づいて発生します。一部のイベントは、他のユーザーに通知する必要があるユーザーのアクションによって発生し、一部のイベントは時間ベースであり、他のイベントはオブジェクトの状態の変化に基づいています。
これまで見てきたことに基づいて、アプリケーション コンポーネントを分離する最もクリーンな方法は、コンポーネント内のオブジェクトが他の関心のあるアプリケーション コンポーネントをサブスクライブできるイベントをパブリッシュするパブリッシュ/サブスクライブ モデルをセットアップすることのように思えます。
nServiceBus を見たことがありますが、"vendor-lock-in" の理由により、Azure で .NET サービスを使用できません。他に利用可能な技術はありますか?私が検討すべき別のアプローチはありますか?
編集- 明確にするために、これは Web ベースの大量のアプリケーションです。アプリケーションは ASP.NET MVC であり、MVC アプリケーションはそのデータのために複数の WCF サービスと通信しています。