BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より

イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より

原文(投稿日:2017/11/14)へのリンク

Lightbendの創業者でCTOのJonas Boner氏がイベント駆動サービスについて講演し、イベント駆動アーキテクチャ(EDA)とイベントストリーム処理(ESP)テクノロジが、分散システムを基盤とする現代的なアプリケーション設計において果たす役割について説明した。氏は先日のReactive Summit 2017カンファレンスで基調講演を行なった。

Boner氏のプレゼンテーションは、イベント起動システムが時間とともにいかに進歩してきたか、というバックグラウンドから始まり、TuxedoTerracottaSEDA(Staged Event Driven Architecture)などを例としてあげた。イベントとは事実を表すものであるから、イベント駆動が何を意味するかを知ることが重要だ。

イベントはシステムの自律性を向上するだけでなく、リスク軽減にも有効だ。疎結合、スケーラビリティ、レジリエンス、トレーサビリティも向上する。イベント駆動サービスアプローチは、基本的にシステムの制御フローを反転させるので、結合の最小化と自律性の向上を支援する。イベント駆動ソリューションが注目するのは、システムの構造よりも、システムの振る舞いなのだ。

氏は開発者に対して、システム内の“もの”(ドメインオブジェクト)に注目するのではなく、何が起きるのか(イベント)を重視することを推奨した。そして、Mark Burgess氏の提唱する約束理論(Promise Theory)を取り上げ、約束を通じてイベントをコンテキスト境界(Bounded Context)として定義する方法について解説した。

Boner氏はイベントによって時間の管理が可能になるとも述べて、Greg Young氏のことばを紹介した。

イベントをモデリングすることにより、システムで何が起きているのかを経時的に把握する必要が生じます。時間がシステムの重要なファクタになるのです。

イベントをログすることにより、イベント一時的なスナップショットとして、イベントログを完全なヒストリとして扱うことが可能になり、時間のモデル化が実現する。経時的なデバッグに加えて、監査やトレーサビリティのためにログを再生可能であるという意味において、タイムトラベルも可能になる。システム障害やデータ重複を再現できるのだ。

Boner氏はイベント駆動アーキテクチャとして、次のようなパターンに言及した。

  • イベントループ
  • イベントストリーム
  • イベントソーシング
  • CQRS(コマンドクエリ責務分離)による時間的分離
  • イベントストリーム処理

これらのデザインパターンは、Apache FlinkSpark StreamingKafka StreamsApache GearpumpApache Beamなどのイベントストリーム処理テクノロジを使用して実装することができる。

 

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT