2017-06-13 8 views
1

私はいくつかの電子商取引サイトを開発しました。私は最近、軸索骨格に気付きました。 私はaxonframeworkで新しいEコマースサイトを実装する方法を検討しています。axonframeworkで標準リポジトリとイベントソーシングリポジトリの両方を使用できますか?

私は、標準リポジトリを使用して集計(この場合は注文です)を単純に使用することを意味しますが、レビューの目的で注文履歴も必要です。 イベントソーシングリポジトリを使用して、オーダー履歴を実装するために注文上のすべてのイベントを保持できるかどうかは疑問です。

質問:

  1. 私はaxonframeworkの両方の標準リポジトリとイベントソーシングリポジトリ を使用することはできますか?
  2. 私が標準リポジトリとイベントソーシングリポジトリの両方を使用できる場合、axonframeworkが識別子で集約をロードする方法は、標準リポジトリまたはイベントソーシングリポジトリで行われますか?
  3. いずれかの提案が高く評価されます。

ありがとうございます。

答えて

1

本質的に、システムからのすべてのイベントを記録するためにEvent Sourcingは必要ありません。イベントストアが必要です。 Axonでは、イベントストアはイベントバスの特殊バージョンで、すべてのイベントをすべてのリスナーに公開する前にEventStorageEngine(JPA、JDBC、Mongoなど)に保存します。

リポジトリに関しては、リポジトリを1つだけ使用して集約をロードできます。それはイベントソースか、そうではありません。 Event Sourcedの場合、過去に発行したイベントを使用して集計が再構築されます。さもなければ、ORM機構は、データベースに記憶されたデータに基づいて現在の状態を再構築する。

+0

あなたの答えをありがとう、Allard。私は、MongoをNOT Event Sourced EventStorageEngineとして使用し、すべてのイベントを注文履歴としてクエリ側に記録できると考えています。 「すべてのリスナーに公開する前に、EventStorageEngine(JPA、JDBC、Mongoなど)にすべてのイベントを保存する」と記載しましたが、イベントが発行された場合でもEventStorageEngineからすべてのイベントを取得できるのでしょうか? 答えがNOの場合は、依頼履歴としてすべてのイベントを自分自身で記録する必要があります。 –

+0

イベントソーシングを使用する場合は、イベントストアも使用する必要があります。ただし、Event Sourcingを使用しない場合でも、Event Storeを使用できます。その場合、Axonはすべてのイベントがすべてのコンポーネントに公開されたときに保存します。手動でハンドラに保存する必要はありません。 – Allard

関連する問題