私は現在、データベースにmongodbを使用するソーシャルゲームアプリを持っています。私の質問は、ポイントとバッジシステムを作成したい場合のいくつかの提案は何ですか。アチーブメント/バッジのビジネスロジックは非常に複雑になる可能性があり、非常にアドホックであるため、バッジのリアルタイムの授与を行うことは効率的ではないようです。追跡されたアクションをどこかのキュー、つまりAmazon SQSに追加するか、ユーザーのアクティビティフィードをキューとして使用し、別のオフラインワーカープロセスを実行して、すべてのアクション/アクティビティの効果を処理して、特定のバッジが交差しています。
この方法での私の心配は、バッジクエリが非常に集中的になる可能性があり、非常に多くのアクションも追跡する必要があるように思われることです。過去4週間、毎週2位を獲得した人のバッジから、50の州のすべてに友達がいる人のバッジなど、さまざまな成果を想像できます。
このタイプのもののためのよりエレガントなまたは実証済みの方法はありますか?mongo以外に実績/アクティビティフィード/リーダーボードに別のデータベースを使用して、mongo /その他のdbハイブリッド環境を作成することは理にかなっていますか?
ハイブリッドソリューションには、Redis、Neo4J、または単なる古いSQL Serverなどの選択肢が適していますか?私はMongoが好きなので、プライマリデータベースとして残りますが、ミックスに別のデータベースを追加することが役立つかどうかを知りたいと思っています。