問題タブ [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.

0 投票する
1 に答える
3489 参照

cqrs - J Oliver EventStore - サガの例

Saga と EventStore の使用に関するドキュメント/ガイダンスがあるかどうか疑問に思っていました。私の混乱の一部は、NServiceBus や MassTransit などの Service Bus の使用を見ると、Saga の概念もあるということです。EventStore 自体のコードには Saga が含まれていませんが、CommonDomain プロジェクトには含まれており、それらは連携して動作します。CommonDomain/EventStore で Saga インフラストラクチャを使用するか、ServiceBus Saga サポートに依存しますか? それとも両方を一緒に使用できますか?

0 投票する
4 に答える
2184 参照

c# - joliver commondomain/eventstore を使用してドメインをテストする例

JOlivers CommonDomain と EventStore を使用してドメインをテストする良い例を探しています

私は greg youngs のビデオを見てきましたが、彼は素晴らしい単純な抽象集約ルート テスト フィクスチャを持っています。

これらのライブラリで使用できるようなものはありますか?

0 投票する
1 に答える
342 参照

cqrs - JOliverのEventStore:ServiceStackシリアライザーを使用しているときにイベントを読み取ることができません

ServiceStackを使用する場合、EventMessage.Bodyは逆シリアル化されて元のオブジェクトに戻されません。代わりに、EventMessage.BodyはJSON文字列です。

再現するには:

  1. EventStoreプロジェクトを開き、EventStore.Exampleプロジェクトに移動します
  2. EventStore.Serialization.Json参照をEventStore.Serialization.ServiceStackへのプロジェクト参照に置き換えます
  3. EventStore.Exampleプロジェクトでアセンブリ署名をオフにします
  4. MainProgram.WireupEventStoreを.UsingServiceStackJsonSerialization()に変更します
  5. MainProgram.Main()の終わり近くに次のコードを追加します。

-

0 投票する
1 に答える
513 参照

cqrs - EventStore を使用して、praxis で新しいアプリケーション ビューを構築する方法は?

はい、似たようなことが少なくとも数回前に尋ねられました。したがって、答えはわかります。単純に、新しいハンドラーでイベントを再生するだけです。しかし、実際に実装してみると、いくつかの疑問が生じます。

私はJOlivierのEventStoreを使っています。手始めに、SnapShots の概念を無視して、イベントを取得する方法だけを見ていきます。私ができるのは、次のコードだけです。

もちろん、ここでの最初の質問は次のとおりです。これはそれを行う方法ですか?「GetFrom」のパラメーターの使用に問題があります。これは単なる DateTime であり、すべてのサーバーが時間的に同期されているかどうかを確認できないからです。あるサーバーの時計が別のサーバーの時計より 1 分遅れている場合はどうなりますか? それとも1時間半?私は NServiceBus も使用しているので、新しいハンドラー キューは特定の時点からイベントを積み上げます。新しいアプリケーション ビューが開始時に完全に同期していることを 100% (99% ではありません) 確認しながら、EventStore からイベントを取得する方法を教えてください。

また: コードに特別なインポート メソッドを作成しますか? つまり、新しいアプリケーションのハンドラーが「SomeDomainEvent」を処理するときに電子メールを送信するとします。10,000 件の古いイベントすべてについてメールを送信したくありません。praxis/codeでこの「インポート」をどのように行いますか?

0 投票する
4 に答える
1287 参照

cqrs - JOliviers の CommonDomain と EventStore を使用して集計のリストを取得するには?

CommonDomain のリポジトリは、「GetById()」のみを公開します。たとえば、ハンドラーが顧客のリストを必要とする場合はどうすればよいでしょうか?

0 投票する
2 に答える
496 参照

cqrs - NES(.NETイベントソーシング)トランザクションは失敗しますか?

NES 0.3(https://github.com/elliotritchie/NES)を試していますが、何が起こるかを理解するのに問題があります。EventStoreの構成をSQLサーバーに変更し、実行がSendMessageCommandHandler.Handle()を終了する直前に例外を挿入したサンプルアプリケーションを実行しています。

次に、ハンドラーとWebサイトを起動します。うまくいく新しいユーザーを作成します。EventStoreテーブルに登録された1つのイベント。それから私はメッセージを送ろうとします。これは私の例外のために失敗します。したがって、バスのトランザクションの性質により、NServiceBusイベントはディスパッチされていません。ただし、EventStoreでは、イベントが登録され、dispatched=1のマークが付けられます。

私は何が欠けていますか?確かに、NServiceBusによってディスパッチされていないときに、ディスパッチとして登録されているべきではありませんか?エラーキュー内の唯一のメッセージは「SendMessageCommand」です。おそらく私の理解が間違っているので、これを著者に問題として報告する前に、ここで質問したいと思いました。

0 投票する
1 に答える
729 参照

nservicebus - CommonDomain と NEventStore でインターフェイスをイベントとして使用するには?

NServiceBusでJOlivers CommonDomain と EventStore を使用してテストを行っています。Aggregate で次のようにイベントを発生させる必要があります。

そして後で私はこのハンドラーを持っています:

残念ながら、これは機能しません。「CommonDomain.Core.HandlerForDomainEventNotFoundException: タイプ 'Phone' の集合体がタイプ 'IPhoneNumberChanged' のイベントを発生させましたが、メッセージを処理するハンドラーが見つかりませんでした。」.

ここでの問題は、「bus.CreateInstance」から作成されたオブジェクトです。これは、純粋な具体的なクラスで動作するためです。しかし、インターフェイスとしてイベントが必要です。これは解決できますか?

編集:注意してください-オブジェクトを作成するために「bus.CreateInstance」を使用する必要はありません。現在「IPhoneNumberChanged」を上げる必要がある最も簡単な(唯一の)方法です。ハンドラーに引数としてインターフェイスがある限り、他の方法も素晴らしいでしょう。

0 投票する
1 に答える
429 参照

cqrs - J Oliver EventStore/CommonDomain SagaBase

Jonathan Oliver の CommonDomain ライブラリで SagaBase が一般的なのはなぜですか?

0 投票する
1 に答える
339 参照

cqrs - NEventStore CommonDomain:アグリゲートが存在しないのにEventStoreRepository.GetByIdが新しいストリームを開くのはなぜですか?

アグリゲートが存在しない場合にEventStoreRepository.GetByIdに新しいストリームを作成させる理由を説明してください。この動作は、GetByIdに二重の責任を与えるように見えます。これは、私の場合、望ましくない結果をもたらす可能性があります。たとえば、私のアグリゲートは常にファクトリメソッドを実装して作成するため、最初のイベントでアグリゲートのIDが設定されます。アグリゲートが存在する前にコマンドが処理された場合、アグリゲートにIDが設定されていないか、他の状態が初期化されていなくても、コマンドが成功する可能性があります(null参照例外を伴うcrash-n-burnも同様に発生する可能性があります)。

時期尚早の作成とコマンド処理を防ぐために、集約が存在しない場合は、GetByIdに例外をスローさせたいと思います。

0 投票する
2 に答える
6528 参照

mongodb-.net-driver - 不明な識別子値 'MyEvent'

joliver/EventStoreで MongoDB 永続化エンジンを使用すると、エラーが発生しますUnknown discriminator value 'MyEvent'。この問題は、次のようなイベントを再生するためにすべてのイベントをロードしようとしたときにのみ発生しますthis.storeEvent.Advanced.GetFrom(new DateTime(2010, 1,1))

問題は ExtensionsMethods.cs で発生します

私の構成は次のようなものです:

しかし、ほぼすべての種類のシリアライザーオプションを試しました。