BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AxonDB - イベントストアの新たな実装

AxonDB - イベントストアの新たな実装

原文(投稿日:2018/02/27)へのリンク

読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。

Axon FrameworkのサポートベンダであるAxonIQから先日リリースされたAxonDBは、トランザクションとプッシュベースのインベントパブリッシュをサポートした、イベントソーシング専用の新しいデータストレージだ。ストレージのサイズに関わらず一定のパフォーマンスを保証するため、データ読み込みに特化したアーキテクチャを採用した — AxonIQによれば、膨大な数のイベントに対しても、パフォーマンスは安定している。

AxonDBはACID完全準拠のトランザクションモデルを提供する。つまり、ひとつのトランザクションで複数のイベントを追加することができる。一貫性の実現は、集計(aggregate)する全イベントに対して、ユニークかつ連続的なシーケンス番号の格納を要件とすることで達成している。高スループットと耐障害性を実現するために、クラスタ化されたセットアップでの運用が推奨される。

AxonDBに追加されたイベントは、格納と同時に実行中のリスナおよびイベントプロセッサにプッシュされる。これによって定常的なポーリングの必要性と、それによるレイテンシの発生を回避している。

AxonDBの特徴としては、その他に次のものがある。

  • Javaでスクラッチから開発
  • 下位データベースシステムなしでファイルを直接管理
  • 追加のみの設計
  • スナップショットを組込みでサポート
  • XPathを使ったものを含む、アドホックなクエリをサポート — これはデバッグやサポートなどのニーズに使用することができる
  • 書き込みクォーラム(Quorum、定足数)を使用した、フローティングシングルマスタベースのクラスタリングをサポート
  • リレーショナルデータベースおよびMongoDBからのマイグレーションのサポート

イベントストアの要件とAxonDBの開発を選択した理由についてのプレゼンテーションの中で、AxonIQのコマーシャルディレクタであるFrans van Buul氏は、イベント駆動アーキテクチャ(EDA)が2018年の戦略的技術動向トップ10の1つであるというGartnerの調査結果を強調するとともに、イベントソーシングがEDAの特殊なタイプであることに注意を促した。

新たなイベントストレージをデザインした理由のひとつは、イベントストア特有の次のような要件を満足するデータベースを見つけられなかったためだ。

  • 集計の全イベントの読み込み、指定時間以降の全イベントの読み込みのサポート。
  • 書き込み順序でのイベントの読み戻し。
  • 複数イベントの一括追加やコミットしたイベントのみの読み込みを可能にする不可分性(atomicity)
  • ストレージサイズに影響されない、一定のパフォーマンス。大規模なイベントストアでパフォーマンス上の問題を克服するには、直近のイベントのスナップショット化と最適化が重要だ。
  • イベント追加のみのサポート。イベントは不変の事実であるから、任意の位置への挿入、更新 、削除などは必要ない。
  • イベントリスナへの格納イベントの公開。

RDBMSは確立された技術で、不可分性のサポートも良好だが、van Buul氏にとって大きな問題はパフォーマンスだ。アーキテクチャ的な理由から、膨大な数のイベントでもパフォーマンスを維持することは難しい。

MongoDBのようなドキュメントデータベースは大量データを格納する能力を備えているが、扱えるドキュメントがひとつのみ、というトランザクション境界の問題がある。解決策は複数のイベントをひとつのドキュメントに格納することだが、これはこれで別の問題を発生させる。

Kafkaはメッセージに重点を置いており、メッセージの総数に関しては究極的なスケーラビリティを備えている。一時的なストレージを主な目的として設計されてはいるが、永続的なメッセージ保存も可能だ。大きな問題は、集計の全イベントを読み出す時に発生する。トピックを使用することも可能だが、van Buul氏は、それが数百万の集計にまでスケールしない点を指摘している。

Greg Young氏がリードアーキテクトを務めるEvent Storeも、イベントソーシング専用に設計されたストレージ永続化エンジンである。セールスポイントはイベントストア内にある投影ロジックだが、van Buul氏としては、このロジックはストレージ外に置いた方がよいという意見だ。

既存のデータストレージで確認した問題のため、チームは最終的に、インベントソーシングに特化した、新たなイベントストアの開発を決断した。これが結果として、今回のAxonDBの新リリースとなった。AxonDBは、無償の開発者エディションを含む4つのエディションで使用可能な製品であり、どのエディションに対してもドキュメントが提供される。

近日リリース予定のMongoDB 4.0では、複数ドキュメントのトランザクションを実現している

不変イベントリストを扱うことのできるGDPRモジュールがAxonIQから提供されている。集計に固有の暗号化キーを使うことで、イベント内の個人データが暗号化形式で格納されていることを保証するモジュールだ。個人データの廃止はキーを削除することで行う。これにより、既存のイベントを変更することなく、集計内の個人データを読み込み不能にすることが可能になる。

Axon製品に関する1日カンファレンスが2018年9月21日に予定されている。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT