BT

イベントアーキテクチャとイベントストリーミング

| 作者: Jan Stenberg フォローする 34 人のフォロワー , 翻訳者 sasai フォローする 0 人のフォロワー 投稿日 2017年10月26日. 推定読書時間: 3 分 |

原文(投稿日:2017/09/06)へのリンク

モノリシック・システムから分散あるいはマイクロサービス・システムに移行すると、たいてい、1つのデータベースにある信頼できる唯一の情報源から、複数のデータベース、すなわち信頼できる複数の情報源へと移行することになる。イベントアーキテクチャを使って、全てのイベントをストリームとして永続化することで、信頼できる唯一の情報源へと戻ることができる。イベントとKafkaの使用に関する一連のブログ記事の中でBen Stopford氏はそう主張する。

ConfluentのエンジニアであるStopford氏は、従来のメッセージングシステムでは、イベントは一時的なものであり、すでに消費されたイベントの履歴は存在しない、と指摘する。全てのイベントを永続化することは、信頼できる唯一の情報源を生み出すだけでなく、データを別にしたバージョン管理システムのように、イベントを巻き戻して再生することを可能にする。また、壊れたシステムを復元して、バグ修正後にイベントを再生することも可能になる。

典型的なイベントベースのシステムは、イベントを待ち受け、データベースにある状態を更新・保持し、新しいイベントを送出する。Stopford氏にとって、これには2つの課題があるという。1つは、データベースとイベントログの両方に書き込む際の一貫性を保つことだ。もう1つは、データベースにあるデータとイベントが、、例えば異なるコードパスのために、ずれ始めるおそれがあることだ。これはシステムの不整合という問題を引き起こす。それを解決する最善策は、イベントソーシングシステムのように、イベントを第1級エンティティにして、イベントだけを使うことだ。

イベントストリームを始める1つの方法は、Change Data Capture (CDC) を使うことだ。このテクニックは多くのデータベースで使えるようになってきている。CDCを使ってデータベースに書き込むと、書き込みはバックグラウンドでイベントストリームに変換される。Stopford氏が言及した利点の1つは、整合ポイントを与えてくれることだ。データベースに対して読み書きできるにもかかわらず、イベントストリームが手に入る。データベースとストリームを同期し続けるための分散トランザクションの必要はない。

Stopford氏にとって、CDCのもっとも重要なユースケースの一つは、古いアーキテクチャからの移行だ。CDCを使ってレガシーシステムのデータベースに接続することで、イベントストリームを取り出して、レガシーシステムの使用からイベントストリームの使用へと徐々に移行することができる。

イベントソーシングとイベントストリームを使うときに役立つパターンは、イベントを2度保持することだ。一度は、時間順でなされた全ての変更を保持するリテンションベースのトピックで、これはイベントソースのビューで使われる。もう一度は、圧縮されたトピックで、これはエンティティの最新ビューのみを提供し、より小さく高速になる。

Stopford氏は、ストリームベースのイベントアーキテクチャの一番の機能は、進化できることである、と締めくくった。新たな要件が発生すると、新しいサービスを構築して、簡単にデプロイし、最初から全てのイベントを再生することで最新の状態にすることができる。Kafkaにはそのための機能が備わっており、このスタイルのアーキテクチャを構成するのにぴったりだ、と彼は考えている。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT