私は、非ステートチェンジイベントをトリガとして公開したいユースケースを持っています。Axon:Eventsourced集計なし状態変更イベント
大部分の場合、集約者はイベントを適用してイベントを公開します。ただし、場合によってはイベントを(おそらく別のコンポーネント内から)イベントバスに直接パブリッシュする必要があります。イベントをパブリッシュするには、イベントを記述するペイロードをEventMessageでラップするだけです。 GenericEventMessage.asEventMessage(Object)メソッドを使用すると、任意のオブジェクトをEventMessageにラップすることができます。
イベントは佐賀の中から公開されています。
私はasEventMessage
を使用してイベントテーブルを見ると少し混乱します。このイベントにはシステムの残りの部分には存在しない集計識別子があり、タイプエントリはnull
です(ドキュメントを読むときは、予期した動作(asEventMessage
は集約内のイベントの適用と同じです)。
私はイベントを考慮しているので、私は概念的にはそれを参照するべきである集合体の一部を話しています。
だから私はGenericDomainMessage
を自分で作るとその集約識別子、シーケンス番号を設定し、手動で入力します。このイベントを
@SagaEventHandler
public void on (AnotherEvent event, @SequenceNumber long sequenceNr) {
// ...
GenericDomainEventMessage myEvent = new GenericDomainEventMessage(
MyAggregate.class.getSimpleName(),
identifier.toString(),
sequenceNr + 1,
payload);
eventStore.publish(myEvent);
}
をその基礎となる骨材(データ)の状態変化を導入しません。私はそれをドメイン内で強い意味を持つフラグ/トリガーとして扱います。
また、コマンドハンドラで集約内からイベントを公開することもできますが、実行する必要のある操作の一部は集約の有効範囲外です。だから、佐賀がもっと適しているようだ。
は、だから私の質問は以下のとおりです。
AggrgateLifeCycle#apply
の行動に等しいGenericDomainEventMessage
を公開されていますか?
集合体にノーオペレーションハンドラがあるか、またはこれを正しく処理するのはaxonですか?軸索3において