2017-01-28 3 views
2

ドメイン駆動型設計のすべての詳細に慣れていない場合、マイクロサービスアーキテクチャでは、各サービスを独自のドメインと考えることができ、サービスごとにイベントストアを構築できます。マイクロサービスベースのイベントストア

システム全体の単一のモノリシックイベントストアのトレードオフが何であるかは完全にはわかりません。たとえば、システムで条件を再生したり、クロスサービスの依存関係をデバッグしたりするのが難しい場合などです。

答えて

5

重要なことは、明白な単一の所有者を持つことです。つまり、店舗を共有する場合は、1つのサービスだけが指定された一連のストリームを使用する限りです。

たとえば、NEventStore v5 +では、これはストア内のサブディビジョンである「バケット」を持つようにコード化されています。各サービスは、そのような状態の分離セットを取得します。または、SQL SB内の複数のSCHEMAを介して同じことを行うこともできます。

あなたが行くようにサービスを有効にしたい

  • クロスサービスを読み取るために誘惑に開いた人を残したくない、あまりにも

    • 最大に分離する理由のコースの多くのがあります別々の道を - あなたはこのビューと手をつないで行くことができる共有ライブラリを有するサービスA
    • のデプロイを必要とするサービスBのための任意のインフラストラクチャの変更を持っている必要はありません、またslipperlyスロープ
    です

    この懸念は、マイクロサービス(およびそれ以前のSOA)の自律性の原理に沿った一般的な制約であると言わざるを得ない。

  • +0

    コンシューマ(読者モデル)は、ビルドするために複数のイベントストア複雑な投影? –

    +2

    まあ....許されていません。しかし、一般的なアドバイスは、マイクロサービス間のどのような統合も、時間の経過とともに理解、分析、バージョン管理の痛みを伴って、物事が結合されるインターフェースであるということです。このように、誰もが明示的にモデリングする必要があります。つまり、他のアーキテクチャーと同じくらい速く泥のボールを持っていなければ、他人が必要とするイベントを明示的に作成することになります。 (これは、一般的なアドバイスは、正確に同一のインフラストラクチャを使用して、N個のサービスをそれぞれ適切かつ個別にモデル化しないことです) –

    +0

    @ ConstantinGALBENU申し訳ありませんが、@あなたを忘れました –

    関連する問題