タグ付けされた質問 「cqrs」

7
Kafkaを(CQRS)イベントストアとして使用する。良いアイデア?
以前にカフカに出会ったことはありますが、最近、カフカがCQRS、イベントストア(のベース)として使用されている可能性があることに最近気付きました。 Kafkaがサポートする主なポイントの1つ: イベントのキャプチャ/保存、もちろんすべてのHA。 パブ/サブアーキテクチャ 新しいサブスクライバーが事後にシステムに登録できるようにするイベントログを再生する機能。 確かに私はCQRS /イベントソーシングに100%精通しているわけではありませんが、これはイベントストアのあるべき姿にかなり近いようです。面白いことに、イベントストアとして使用されているKafkaについてはそれほど多くの情報を見つけることができません。 それで、それが良いイベントストアになるためにカフカから欠けているものは何ですか?それはうまくいくでしょうか?それを使って生産?洞察、リンクなどに興味がある 基本的にシステムの状態は、通常行われているシステムの現在の状態/スナップショットを保存するだけでなく、システムが受信したトランザクション/イベントに基づいて保存されます。(会計の総勘定元帳と考えてください:すべてのトランザクションは最終的に最終状態になります)これにより、あらゆる種類のすばらしいことが可能になりますが、提供されているリンクを読むだけです。

6
イベントソースストレージとしてのRDBMSの使用
RDBMS(SQL Serverなど)を使用してイベントソースデータを格納している場合、スキーマはどのようになるでしょうか? 抽象的な意味で話されているいくつかのバリエーションを見ましたが、具体的なものはありません。 たとえば、「製品」エンティティがあり、その製品への変更は、価格、コスト、説明の形式で発生するとします。私がするかどうかについて私は混乱しています: 製品のすべてのフィールドを含む「ProductEvent」テーブルを作成します。各変更は、そのテーブルの新しいレコードを意味し、必要に応じて「誰、何、どこ、なぜ、いつ、どのように」(WWWWWH)を意味します。コスト、価格、または説明が変更されると、製品を表すまったく新しい行が追加されます。 製品のコスト、価格、および説明を、外部キー関係を使用してProductテーブルに結合された個別のテーブルに格納します。これらのプロパティに変更が発生した場合は、必要に応じてWWWWWHを使用して新しい行を書き込みます。 WWWWWHに加えて、イベントを表すシリアル化されたオブジェクトを「ProductEvent」テーブルに格納します。つまり、特定の製品のアプリケーション状態を再構築するために、イベント自体をアプリケーションコードでロード、シリアル化解除、および再生する必要があります。 。 特に上記のオプション2について心配しています。極端に言うと、製品テーブルはプロパティごとにほぼ1テーブルであり、特定の製品のアプリケーション状態をロードするには、各製品のイベントテーブルからその製品のすべてのイベントをロードする必要があります。このテーブル爆発は私に悪臭を放ちます。 「依存している」と私は確信しており、単一の「正解」はありませんが、何が受け入れ可能で何がまったく受け入れられないかを感じ取ろうとしています。また、NoSQLがここで役立つことも知っています。集約ルートに対してイベントを格納できます。つまり、オブジェクトを再構築するためのイベントを取得するためのデータベースへの単一の要求のみですが、ここではNoSQL dbを使用していません。瞬間なので、私は代替案を探しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.