リアルタイム フィードを開発しようとしていますが、ジレンマに陥っています。ユーザーをサブジェクトとする標準イベントがあります-
- Personがactionになりました。[たとえば、「ジョンはスティーブとつながりました」。]
このイベントは、自分がフォローしている人が何かをしたときに発生します。
さらに、ユーザー以外のオブジェクト、「プロダクション」に依存するイベントもあります -
- プロダクションがアクションになりました[たとえば、タイタニックのクレジットにはケイト・ウィンスレットが含まれるようになりました.
つまり、ユーザーは他の 1) ユーザーまたは 2) 作品をフォローできます。ただし、この 2 つのイベントは互いに衝突する可能性があります。次の例を考えてみましょう。
1)
- David はユーザー Steve をフォローしていません。
- デビッドはタイタニックの制作をフォローしています
- Titanic には、ユーザー Steve が関与する新しいイベントがあります。
- デビッドはスティーブではなくタイタニックをフォローしているため、デビッドのフィードには
「タイタニックのクレジットにスティーブが含まれるようになりました」のようなメッセージが表示されます。 - ここで、David が Steve をフォローし始めます。上記の文法は機能しますが、次の場合を想定します。
2)
- デビッドは現在スティーブをフォローしていますが、タイタニックはフォローしていません。
- スティーブはタイタニックの制作に参加します。
デビッドのフィードでは、 「スティーブはタイタニックのプロダクションに参加しました」などと言うでしょう。 - ここで、デビッドはタイタニック号を追跡し始めます。上記の文法は機能しますが、イベントの順序に基づいて 1) と矛盾します。
これが、Facebook/LinkedIn のようなサイトがイベントの対象として常に単一の一貫したオブジェクト (この場合はユーザー) を持っている理由のようです。
ユーザーとプロダクションの両方を持つことは可能でしょうか? もっと難しいことはわかっていますが、どうすればそれを行うことができますか?