問題タブ [event-sourcing]
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.
mongodb-.net-driver - 不明な識別子値 'MyEvent'
joliver/EventStoreで MongoDB 永続化エンジンを使用すると、エラーが発生しますUnknown discriminator value 'MyEvent'。この問題は、次のようなイベントを再生するためにすべてのイベントをロードしようとしたときにのみ発生しますthis.storeEvent.Advanced.GetFrom(new DateTime(2010, 1,1))
問題は ExtensionsMethods.cs で発生します
私の構成は次のようなものです:
しかし、ほぼすべての種類のシリアライザーオプションを試しました。
nosql - ドキュメント/NoSQL データベースは貸借対照表の保存に適していますか?
私が基本的な個人会計システムを作成する場合 (私がそうなので、要件に行き詰まることを避けるために十分に精通しているドメインに関する趣味のプロジェクトです)、RavenDB のような NoSQL/ドキュメント データベースは次のようになります。アカウント、さらに重要なことに、それらのアカウントに対するトランザクションを保存するための良い候補はありますか? どのエンティティが「ドキュメント」であるかを選択するにはどうすればよいですか?
これは、実際には SQL データベースが適切であり、NoSQL に移行しようとするのは間違いであるというケースの 1 つであると思いますが、CQRS とイベント ソーシングについてほとんど知らないことを考えると、エンティティ/ドキュメントが実際にはAccountであり、トランザクションはそれに対して保存されるイベントであり、これらの「イベント」が発生すると、アプリケーションは SQL データベースのような簡単にクエリ可能な読み取りストアにも書き出す可能性があります。
よろしくお願いします。
cqrs - イベントソーシングを使用した時間ベースのSagas
あるイベントによって作成され、座って数時間待って、何も起こらない場合はコマンドを送信するサガが必要だったとしましょう。
さて、この佐賀がすべてメモリ内にあり、アプリ/サーバーを再起動する必要がある場合、佐賀はアンロードされ、二度と表示されませんよね?
システムがオンラインに戻ったら、イベントソーシングを使用してこの佐賀を高速化できますか?
もしそうなら、私のSagasをスピードアップするために、システムの起動時に再生できる「アクティブなsagas」を備えたかなり別のイベントストアが必要になります。これまでのところ、それは私には良いように思えますが、タイムアウトをどのように実装しますか?
佐賀に入るイベントに応じて、いくつかの後続のタイムアウトがある可能性があることを考慮して、再生時にタイムアウトを「偽造」する何らかの方法が必要になります。
event-sourcing - EventStore3.0と公開イベント
では、Event Store 3.0を介してイベントを公開するための推奨される方法は何でしょうか?私がこのようにEventStoreを接続すると仮定します:
ここで、「DispatchCommit」は次のようになります。
コミットされたイベントが期待どおりに発生するのを見ることができます。ただし、ES 2.0ではIContainerがメッセージディスパッチャーに渡され、バスインスタンスを解決してイベントを送信できました。IDispatchCommitsを実装するクラスを使用しますか?
ES 3.0を使用している人はいますか?
cqrs - JO の CommonDomain で AR バージョンをそのイベントと共にディスパッチする
Aggregate の現在のバージョンを Read Model に伝える正しい方法を探しています。現在、私が見る唯一の可能性は、次のことを行うことです。
Aggregate はすべての読み取り側イベント ハンドラーに AR バージョンを自動的にディスパッチする必要があると思うので、私はそれが好きではありません。
これを行う他の方法はありますか?
cqrs - CQRS w/ES のコマンドとイベントの意図
私の質問はこれに関連しています。関連する質問と回答は、なぜそれらを分離したいのかを示していますが、意図の理解が正しいことを確認したかったのです。私が見たすべての例では、コマンドの意図は、拒否することができ、メモリ内のオブジェクトを更新し、イベントがデータベースを更新することであるようです。ここで非常に単純化しすぎていることはわかっていますが、コマンドはメモリを更新するためのものであり、イベントは DB を更新するためのものであると理解するのは正しいですか? そうでない場合は、誰かが私のために明確にしてください。
私はこれらのパターンを学ぼうとしていますが、これが私がこれまでに把握した方法であり、それが正しいことを確認したいと考えています. 前もって感謝します。
event-sourcing - EventStore 3.1 - SQL Persistence - 非 dbo スキーマを使用するにはどうすればよいですか?
私が取り組んでいるプロジェクトでは、[dbo] スキーマを使用できません。EventStore ソースを見ると、非 dbo スキーマを使用するのは簡単ではないように見えます。
これまでのところ、私が思いついた最善の方法は、次のようなカスタム方言を使用することです。
- サブクラス CommonSqlDialect
- Msqldialect のプライベート インスタンスを追加します。
- 次に、 CommonSqlDialect のすべての仮想プロパティをオーバーライドして、次のようなことを行います
例:
また、InitializeStorage プロパティをカスタマイズして "sysobjects" を "sys.objects" に置き換える必要があるため、スキーマ名に制約を追加できます。
これは機能しますが、スキーマとテーブル名をカスタマイズするためのワイヤアップ オプションが必要なようです。
私が見逃したこれを処理するための明らかに良い方法はありますか?
cqrs - 分散アーキテクチャでのスナップショットの作成
私は質問のタイトルの問題について考えています:分散イベントストアが最終的に最後のイベントが配布されるのを待つことができる分散アーキテクチャでアグリゲートをクエリする必要がある場合..アグリゲートが自分であるかどうかをどのように知ることができますか読み取りモデルを介した読み取りは、ネットワークの別のサーバーで更新されたものに置き換えられていませんか?
ストアに保存するイベントを受信するhttpサーバーがあります。ストアは実際には存在しませんが、すぐに実装したいと思います。イベントは、json形式でシリアル化された4MBの巨大な集合体に関するものです
もう1つのサブ質問は、スナップショットにどのストレージをお勧めしますか?
編集
質問がうまく書かれていないのか、間違ったタグを選択したのかわかりません...
c# - Jonathan Oliver の EventStore で接続文字列を使用して構成された SqlPersistence インスタンスを取得するにはどうすればよいですか?
次のコードは、名前付き接続のイベントストアを作成します。
次のようなものが必要です:
私が見つけた最も簡単な方法は、カスタム IConnectionFactory を作成することですが、これは正しくないようです。助言がありますか?