問題タブ [eventstoredb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - EventStoreでストリームを検索しています
StreamIdではなく別のStream属性でストリームを検索することはできますか?たとえば、すべてのストリームのヘッダーにCustomerIdがあり、特定のCustomerIdを持つすべてのストリームを検索したい場合です。
domain-driven-design - スナップショットは EventStoreDB でサポートされていますか?
イベントに基づくシステムを実装するために、Greg Young の EvenStoreを使用することを真剣に考えています。ただし、Greg Young の EventStore がスナップショットをサポートしているかどうかはわかりません。毎回すべてのイベントを再生してオブジェクトの状態を構築したくないので、スナップショットは私のアプリケーションにとって重要な要件です。
EventStore (Greg Young バージョン) でスナップショットを作成する方法のサンプルを誰か提供してもらえますか?
cqrs - NEventStore と EventStoreDB の違い
最近、私は CQRS を学んでおり、イベント ソーシング パターンを使用するようにシステムを変更したいと考えています。
しかし、.Net プラットフォームには 2 つの Event Store 実装があることがわかりました。
2 つの実装は私を混乱させます - 誰かがそれらの間の主な違いを説明してください。
mongodb - EventStore と MongoDb の比較
MongoDb でイベント ソーシングを自分で実装するよりも、EventStore ( http://geteventstore.com )を使用する利点を知りたいです。
私が尋ねる理由は、私たちの会社には、MongoDb を毎日扱っている人がたくさんいるからです。ただし、イベント ソーシングでは機能しません。彼らはこの件について完全に闇に包まれているわけではありませんが、どこにも実装しようとしているわけではありません。
イベント ソーシングに最適なプロジェクトを開始しようとしています。約 16 の非常に明確に定義されたイベントと、約 7 の明確に定義された予測があります。私が「約」と言ったのは、製品が実際に使用されているのを見たら、より多くの予測やイベントの需要があることを知っているからです.
このアプローチは、組織の他の部分が使用する REST Api を使用した API ファーストになります。
Greg Young が定義するようにイベント ソーシングについてよく読んできましたが、実際にイベント ソーシング ソリューションを実装したことはありません。
これはグリーン フィールド プロジェクトです。すべてを REST インターフェイスとして公開するため、技術的な制限はありません。そのため、EvenStore または MongoDb を使用したイベント ソーシングの経験がある場合は、教えてください。
また、イベント ソーシングに関するほとんどまったく関係のない質問: イベント ストアに直接クエリを実行したことがありますか? それとも、常に新しいプロジェクションを作成し、イベントを再生してそれらのプロジェクションを設定しますか?
eventstoredb - EventStore Getting Started プロジェクトでの WrongExpectedVersionException
何が起こっているのかを知るために、getting-started-with-event-store プロジェクトを書き直しました。テストのためにCanSaveExistingAggregate()
、WrongExpectedVersionException が発生しています。問題は、何が起こっているのかを試して解決するために、期待されるバージョンを知りたいのですが、どうすればこれを見つけることができますか? テストでは、行repository.Save(firstSaved, Guid.NewGuid(), d => { });
は予想されるバージョンを次のように計算し101
ます。これが失敗する場所です。
そして、例外がスローされるコード:
他のすべてのテストはパスします (ただしThrowsOnGetDeletedAggregate()
、それについては後で質問します)。expectedVersion != ThrowsOnGetDeletedAggregate()
event-sourcing - イベント ストアのクエリ
私は何年にもわたってソフトウェアを開発してきましたが、イベント ストアのコンセプトは非常に興味深いものであることがわかりました。これは、私が長年にわたって遭遇した多くの問題点をうまく回避できるからです。ただし、これを実際に試す前に、3 つのことが残っています。
1 つ目は、イベント ストアのクエリを処理する方法です。さて、おそらく非正規化された方法で、イベントのストリームからの結果を本質的にキャッシュするテーブルを設定することで、基本的にそのようなクエリをサポートすることを理解しています。しかし、それをどのように実装しますか?テーブルを更新するイベントのリスナーをもう 1 つ用意しますか? 特定のオブジェクトのほぼすべてのフィールドを検索できるようにするとどうなるでしょうか? 検索テーブルで使用されているスキーマを更新する場合、すべてのレコードのテーブルを更新するものを再実行する必要はありませんか? これをきれいにやってのけるのはどれくらい難しいですか?
2 つ目は、大量のデータをどのように処理するかです。つまり、ブログの投稿などを保存しているとしましょう。かなりの数の更新を受け取る大量の大量のテキストをどのように処理しますか? 古いバージョンとの差分を生成する何かを介して新しいバージョンを実行しますか、それとも別の戦略を使用しますか?
3 つ目は、外部からの一括更新をどのように処理するかです。大きなドキュメントが入ってきて、それぞれが集約ルートを表しているとしましょう。一連の小さな更新に分割しますか (そして、一括更新によってどのように更新されたかを見失う可能性があります)、それとも、この特定のユース ケースに大規模で厄介なイベントがあるだけですか。
上記のほとんどすべてが「場合による」という答えを求めているだけだと思います。しかし、一般的なアプローチは何ですか?
eventstoredb - Event Store linkTo ストリームを作成しない
ロブ アシュトン ( http://codeofrob.com/entries/re-partitioning-streams-in-the-event-store-for-better ) のアドバイスに従って、「linkTo」を使用して別のストリームを作成し、イベントに対して予測を実行しています。 -projections.html ) ですが、機能していません。
すべてのストリームのすべてのイベントで実行されるプロジェクトを作成しようとしましたが、以下の画像に示すように、linkTo を使用してストリームが作成されません。
実際にストリームを作成するには、「linkTo」にどのような変更を加える必要がありますか? Windows 8 で実行されている .NET 用に EventStore 2.0.1 を使用しています。Event Store コンソールに次のように表示されます。
eventstoredb - カテゴリからの射影を行う方法は?
現在、次の形式でイベントを保存していますmycategory-mytype-uniqueid
。Web 上のさまざまな投稿を読んでわかったことは、それを行うというカテゴリを取得する必要があるというmycategory
ことです。私は書いた:
mynewstream
variable を使用してストリームと結果を取得することを期待していますnumber
が、どちらも取得していません。それで、私は何が欠けていますか?
c# - 実行時に JObject を型に変換する
私は単純なイベント ディスパッチャーを作成しています。このイベントは、clr 型名を持つオブジェクトと、元のイベントを表す json オブジェクト (byte[] が処理されて jobject に処理された後) が発生します。誰かが詳細を知りたい場合は、GetEventStore を使用しています。
そのclrタイプを使用して2つのことをしたい:
- IHandles を実装するクラスを見つけて、
- そのクラスで Consume(clr type) を呼び出します
次のコードを使用して、パート1を正常に機能させることができました。
ATM 問題は、processedEvent.Data が JObject であることです。その上で t を定義していないため、processedEvent.Data のタイプを知っています。
型名の厄介な切り替えを行わずに、その JObject を型 t に解析するにはどうすればよいですか?