Event-A
、Event-B
、が互いにEvent-C
数日以内に到着する (場合によっては順序が狂っている) 場合Event-ABC
、セット内にすべてのイベントがあることがわかったら、派生物を生成する処理をトリガーしたいと考えています。
イベントは userId/sessionId でグループ化されます
現在、単一のキューからすべてのイベントを読み取り、データベースに書き込み、どのイベントが書き込まれたかを示すメタデータを更新します。メタデータにルールに基づくすべてのイベントが含まれたら、集計処理をトリガーします。このアプローチには、同じグループに属するイベントを処理するときにキュー ワーカーが同じキーを叩く可能性があるため、パフォーマンスの問題がいくつかあるため、代替手段を探しています。
私が望むのは、処理のための userId/sessionId に基づいた、よりきめ細かいソフトウェア定義のルーティングおよびキューイング イベントです。私がやろうとしていることは、イベントソーシングにいくぶん似ていると思います。
私は Akka がこの種の問題に役立つかどうかを調べていました。userId/sessionId ごとのアクターを使用すると、不要な同時実行が削減され、アクター内にトリガー ロジックが含まれます。私が懸念しているのは、非常に多くのアクタを使用するとメモリが必要になる可能性があることです。