2012-02-07 8 views
27

私はEventstoreが何であるかを理解していませんが、私はそれをDomainオブジェクトの "Transactionlog"と考えました。それの長所と短所は何ですか?また、それを使用する良いシナリオは何ですか?使用しないでください。イベントストアを使用する場合

編集:私はあまりにも多くを尋ねることがありますのでeventstoreとするときではないを使用する際 「シンプル」なシナリオが存在することになる場合

、私は幸せでしょうか?つまり、いくつかの文章で2つのシナリオを記述することは可能ですか、それを理解するために5つの書籍を読む必要がありますか?

答えて

42

はい、イベントソースはドメインオブジェクトのトランザクションログに似ており、トランザクションログはすべてのデータの信頼できるソースです。簡単なクエリのために設計された他の形式のデータのコピーがあるかもしれませんが、それらは単にいつでも削除したり再構築したりすることができます。トランザクションログは真実の一つのソースです。

私はそれが非常にコンテキスト依存だが、ここにあなたがイベント・ストアを使用して検討するかもしれない理由の短いリストであるので、それは簡潔にあなたの質問に答えるのは難しいことクレイグに同意:

  • あなたがやって気にあなたのデータの複雑な履歴分析。例えば、誰かがあなたのところに来て、「買い物客のうち何人が買い物カゴに入れた商品を取り出したのですか?クーポンを送った後、買い戻して買いましたか?このようなBIの質問は無限に提供される可能性があり、そのすべてを事前に予測することはできません。システム内のすべてのイベントをキャプチャすると、将来の質問に対する回答を再構築できます。
  • 同様に、誰が何時と理由でどのデータを変更したのかを疑うことなく正確に監査することができます。イベント・ストアは監査ログです。
  • スケーラビリティの高いシステムが必要です。イベントストアの書き込みモデルは追加専用なので、大量のアプリケーションに適しています。本質的にリレーショナルではないため、通常は簡単にパーティション化できます。一方

は、それを行うにはないいくつかの理由があります。

  • あなたは上記のニーズのいずれかを持っていません。
  • イベントストアのデータを簡単に表示および変更できるようにするために、デバッグツールを構築しなければならないという面倒を扱う必要はありません。
  • あなたは長年にわたりそうではないと予想する短命のプロジェクトを構築していますので、大量のアーキテクチャの労力を投資する必要はありません。
  • あなたはイベントソースと同時にCQRS、DDD、EDAを学ぶ準備ができていません。これらのアイデアは、イベントソーシングには厳密には必要ではありませんが、しばしば絡み合っていて、あなたのパラダイムを完全に変更してそれらをすべて一緒に使用すると真の価値が見つかります。イベントソーシングは、ソフトウェアアーキテクチャに関する非常に異なる考え方をまとめたテクニックパッケージの一部です。それは威圧的かもしれません。
+1

あなたの答えをありがとう、ちょうど私が必要としていたものだったからです(イベントストアの使い方に対する/単純な例)。 –

18

これは、stackoverflowの質問ではたくさんあります。あなたの質問に欠けているものは、その短所は何ですか?とにかく、ここに答えるのではなく、あなたが見るためのビデオへのリンクをいくつか提供したいと思います。この質問への回答が意味をなさないには、事前に設定する必要がある多くのコンテキストがあります。

グレッグ・ヤング: 質問にお答えしているすべてのものの概要を示す〜2時間のビデオhereがあります。 〜6時間オンラインクラスhereもあります。

ウディダハン: これらのテクノロジをいつ使用するかについては、1時間のビデオhereがあります。

メーリングリスト: グループhereがあり、あなたの質問をすべて聞くことができ、トピックについての素敵な議論ができます。

希望すると便利です。あなたの質問にちょっとだけロードされていますので、あなたや他の誰かが、短い討論や誤解を招く人々にそれを試して答えてくれるとは思わないでしょう。


アップデート:5本の本を読んだり、下のビデオを見る必要はありません。私はそうすることがあなたの時間の価値があると思うが、必須ではない。あなたの質問の問題は、「シンプルな」シナリオでは一般的にイベントソーシングは必要ないということです。ほとんどのアプリケーションは主にCRUDとデータ駆動です。おそらく、これはあなたの質問に対する答えです。あなたのシステムにあまり「行動」がないなら、あなたはそれを必要としません。行動が多い場合は、必要になるかもしれません。

+0

あなたの答えをありがとう、リンクは助けました(私はすでにそれらのほとんどを知っていたと思うが)。答えにあなたの更新を見ただけで、もっと助けました。あなたの答えをアップアップしましたが、私はエリックリーの答えが私の質問によく合うと思います。 –