問題タブ [neventstore]
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.
cqrs - NEventStore 3.0 - スループット/パフォーマンス
私は JOliver の Event Store 3.0 をプロジェクトの潜在的なコンポーネントとして実験しており、Event Store を介したイベントのスループットを測定しようとしています。
新しいストリームを作成し、GUID id と文字列プロパティで構成される非常に単純なイベントを MSSQL2K8 R2 DB にコミットする for ループを本質的に反復する単純なハーネスの使用を開始しました。ディスパッチャは基本的にノーオペレーションでした。
このアプローチにより、別の 32 ウェイ G7 DL580 上の DB を使用して、8 ウェイ HP G6 DL380 で 1 秒あたり約 3,000 回の操作を実行することができました。テスト マシンはリソースにバインドされていませんでした。私の場合、ブロッキングが限界のようです。
Event Store のスループットを測定した経験のある人はいますか? また、どのような数値が達成されましたか? 実行可能なオプションにするために、少なくとも 1 桁多くのスループットを得ることを望んでいました。
transactions - 方法: 単一のトランザクションを使用して、複数の集計の更新にまたがる
このアプリケーションでは、Jonathan Oliver の EventStore と CommonDomain を使用しています。イベントの保存に使用するデータベースは、SQL Server または Oracle です。
特定のユース ケースでは、1 つのコマンドで複数の集計を更新する必要があります。(CQRS では) 理想的には 1 つのコマンドで 1 つの集計のみを更新する必要があることを認識していますが、この場合、一度に複数のインスタンスを更新することが特定の要件です。
この操作をアトミックにする簡単な方法 (2 フェーズ コミットを使用せずに) はありますか?
編集: 質問は、EventStore フレームワーク (およびおそらく CommonDomain フレームワークのリポジトリ) の使用に固有のものです。これは、トランザクション処理または Unit Of Work パターンに関する一般的な質問ではありません (私はよく知っています)。
event-sourcing - EventStore 3.1 - SQL Persistence - 非 dbo スキーマを使用するにはどうすればよいですか?
私が取り組んでいるプロジェクトでは、[dbo] スキーマを使用できません。EventStore ソースを見ると、非 dbo スキーマを使用するのは簡単ではないように見えます。
これまでのところ、私が思いついた最善の方法は、次のようなカスタム方言を使用することです。
- サブクラス CommonSqlDialect
- Msqldialect のプライベート インスタンスを追加します。
- 次に、 CommonSqlDialect のすべての仮想プロパティをオーバーライドして、次のようなことを行います
例:
また、InitializeStorage プロパティをカスタマイズして "sysobjects" を "sys.objects" に置き換える必要があるため、スキーマ名に制約を追加できます。
これは機能しますが、スキーマとテーブル名をカスタマイズするためのワイヤアップ オプションが必要なようです。
私が見逃したこれを処理するための明らかに良い方法はありますか?
cqrs - EventStore 3.0 で GetStreamsToSnapshot を使用してスナップショットを作成する方法
CQRS アーキテクチャに従い、Jonathan Oliver のイベント ストア バージョン 3 をイベントに使用しています。パフォーマンスを向上させるために、集約ルートのスナップショットを作成したいと考えています。
これに使用できる API (GetStreamsToSnapshot) を見つけました。スナップショットが作成されるまでの時間に基づいて、すべてのストリームを提供します。
しかし、集計タイプがわからないため、ストリームを使用してスナップショットを作成する方法がわかりません。
スナップショットの作成方法に関する情報を提供してください
cqrs - CQRS / EventStore:ディスパッチされていないイベントをディスパッチする方法は?
素晴らしいライブラリEventStore3.0には、
これらをディスパッチするための最良の方法/パターンは何ですか?
単にループしてディスパッチャを呼び出し、コミットを更新してディスパッチャがディスパッチされたことを示しますか(そうであれば、これをどのように行いますか)?
また、EventStoreの接続中に、起動時にディスパッチされていないコミットでディスパッチが試行されます。これが行われないようにするにはどうすればよいですか?
これらの質問は、プロジェクトの問題ではなく、EventStoreがどのように機能するかを学ぶことと関係があります。
cqrs - CommonDomain/EventStore/CQRS : commondomain のテスト プロジェクトはどこにありますか?
GitHub から CommonDomain をダウンロードしました。ディレクトリが表示されます
ファイル「When_an_aggregate_is_persisted.cs」が含まれていますが、それを使用するプロジェクトはありません。また、基本クラス「in_the_event_store」が欠落しているようです。FakeBus、IDomainEvent、SynchronousDispatcher などへの参照もあります。
cqrs - EventStore と複数の作業単位ですか?
いくつかの質問への回答で、Jonathan Oliver は AsynchronousCommitDispatcher を使用して複数の作業単位を処理することについて言及しています。
私はまだプロジェクトの設計段階にあり (そしてまだ CRQS と ES を学んでいます)、いくつか質問があります。
発生するドメイン イベントの影響を受ける集約ルートごとに AsynchronousCommitDispatcher を作成しますか?
別のユーザーによってロックされている場合、ディスパッチされたイベントが集約ルートに変更を加えることができない、ある種のロック メカニズムがある場合はどうなりますか? ロックがある場合、AsynchronousCommitDispatcher は再試行しますか?
ドメイン イベントが処理される前にシステムがダウンした場合はどうなりますか? 未処理であることに固執しなければ、失われてしまうのでしょうか?
私の最初の理解では、Dispatcher のタイプは、ネットワークを介したメッセージングまたは読み取りモデルの更新用でした。ここでは、別の集約ルートを更新するために使用しています。私はこれが正しいですか?
ティア
JD
c# - Jonathan Oliver の EventStore で接続文字列を使用して構成された SqlPersistence インスタンスを取得するにはどうすればよいですか?
次のコードは、名前付き接続のイベントストアを作成します。
次のようなものが必要です:
私が見つけた最も簡単な方法は、カスタム IConnectionFactory を作成することですが、これは正しくないようです。助言がありますか?
cqrs - EventStore build.cmd エラー
JOlivers イベント ストア ライブラリを使い始めたばかりで、build.cmd の Nuget コマンドのいくつかに問題があります。これがログです。おそらくあなたはすでにこの問題を認識していますが、私はそれをここに載せると思いました.
neventstore - ソース付きのEventStoreサンプルアプリケーション?
誰かがソースコードを使ってEventStoreサンプルアプリケーションを教えてもらえますか?
イベントの保存を学習していて、リファレンス実装を表示したいと思います。