私は新しいサイトの計画段階にあります-それは私たちが構築したいくつかのモバイルアプリの拡張です。ユーザーにコミュニケーションの中心点を提供し、モバイルアプリを使用したくない/使用できないユーザー向けの機能も提供したいと考えています。追加しようとしている機能の1つは、SOバッジシステムと本質的に類似したレピュテーションシステムです。私たちはSOAを使用するようにシステムを設計しています。
このロジックのすべてを目立たないチャンクとしてメインアプリにコーディングする必要はありません。これを達成するための手段を作成することを考えています。これにより、評判を得るための新しいしきい値とルールを定義し、それらを何らかのサービスに注入することができます。これまで私がこれを行うことを考えた2つの方法は次のとおりです。
- ユーザーアクションの特定の特性を探して応答するには、これは、「プラグイン」アワード定義を実行し、満たされているしきい値をチェックして適切に応答できるサービスを実行することを意味します。
- ユーザーがアクションを実行したときにイベントを発生させるには、それらのイベントをリッスンし、適切に応答します。これらのアクションを実行するサービスは、潜在的に別々のサーバー上の別々のアプリドメインで実行されているため、これらのイベントをリッスンして応答する中央メッセージバスがあることを確認できる唯一の方法は、MassTransit、nServiceBus、Rhino.Esbなどを使用することです。 。
サービスバスの使用は、それを必要としないアプリケーションに非常に簡単に不適切に設計される可能性があることを知っています。ほとんどの場合、異種の異種システムを統合しない限り、新しいシステムを設計するときにサービスバスは必要ないでしょう。しかし、これを行うための最良の方法に関するオプションについては少し迷っています。私は、サービスがバックグラウンドで常にDbをハンマーで叩くという考えは好きではありません。しかし、それは早い段階で、後で、もっと単純になるかもしれないように聞こえます。私は考えるのが怖いです!
ここで誰かがこのようなシステムを設計しましたか?どのようにしてこれを達成しましたか?システムがユーザーのバーストに対処できる必要がある場合があると予想されるため、高スループットを実現するように設計しています。