私は何年にもわたってソフトウェアを開発してきましたが、イベント ストアのコンセプトは非常に興味深いものであることがわかりました。これは、私が長年にわたって遭遇した多くの問題点をうまく回避できるからです。ただし、これを実際に試す前に、3 つのことが残っています。
1 つ目は、イベント ストアのクエリを処理する方法です。さて、おそらく非正規化された方法で、イベントのストリームからの結果を本質的にキャッシュするテーブルを設定することで、基本的にそのようなクエリをサポートすることを理解しています。しかし、それをどのように実装しますか?テーブルを更新するイベントのリスナーをもう 1 つ用意しますか? 特定のオブジェクトのほぼすべてのフィールドを検索できるようにするとどうなるでしょうか? 検索テーブルで使用されているスキーマを更新する場合、すべてのレコードのテーブルを更新するものを再実行する必要はありませんか? これをきれいにやってのけるのはどれくらい難しいですか?
2 つ目は、大量のデータをどのように処理するかです。つまり、ブログの投稿などを保存しているとしましょう。かなりの数の更新を受け取る大量の大量のテキストをどのように処理しますか? 古いバージョンとの差分を生成する何かを介して新しいバージョンを実行しますか、それとも別の戦略を使用しますか?
3 つ目は、外部からの一括更新をどのように処理するかです。大きなドキュメントが入ってきて、それぞれが集約ルートを表しているとしましょう。一連の小さな更新に分割しますか (そして、一括更新によってどのように更新されたかを見失う可能性があります)、それとも、この特定のユース ケースに大規模で厄介なイベントがあるだけですか。
上記のほとんどすべてが「場合による」という答えを求めているだけだと思います。しかし、一般的なアプローチは何ですか?