イベントサブスクライバーは、プログラムによるアプローチと、サブスクライバがイベントをリッスンして応答する方法を定義する設定によって設定されます。設定は、使用している特定のテクノロジースタック、フレームワーク、メッセージングプラットフォームによって異なります。Drupal、Symfony、Microsoft Dynamics 365 Business Centralで設定されたイベントは、さまざまなタイプのオブジェクトとパラメーターを使用してイベントをリクエストし、イベントデータを検証します。
イベントサブスクライバー通知を示す図。
イベントドリブン型アーキテクチャ(EDA)において、イベントサブスクライバーとは、特定のイベントやイベントクラスに関する情報を受信することを選択するアプリケーション、サービス、デバイス、または人のことです。「イベントコンシューマー」とも呼ばれ、イベントサブスクライバーは、特定のイベントのトピック、エリア、メッセージに関連する変更を「リッスン」し、継続的にポーリングすることで、イベントに関するメッセージを受信します。イベントサブスクライバーがイベントに関する情報を受信すると、データベースの更新、電子メールの送信、ストレージバケットへのオブジェクトの追加、ワークフローのプロンプトなど、さまざまな方法で情報を処理して応答することができます。
イベントドリブン型アーキテクチャとは?
イベントドリブン型アーキテクチャ(EDA)は、システムが発生したときにリアルタイムのイベントを検知、処理、調整、対応できるようにするソフトウェア設計パターンです。イベントとは、特定のビジネスシステムまたはビジネスプロセスの状態が変化したことを指します。イベントドリブン型アーキテクチャでは、イベントサブスクライバーはイベントが発生した瞬間にそのイベントを学習し、アプリ、システム、人、組織がリアルタイムで対応できるようにします。このアーキテクチャでは、イベントクラスやイベントサブスクライバーメソッドを整理するために名前空間を使用することが多く、クリーンでメンテナンス可能なコードベースを確保します。
イベントとは
イベントとは、発生した出来事のことです。状態の変化を指します。イベントには、顧客の購入、情報の要求、インベントリの更新、セキュリティ侵害を示す可能性のあるセンサーの読み取り、ショッピングカートから削除されたアイテム、新しいユーザーアカウントの作成、一定の閾値に達する株価の通知などが含まれます。
イベントドリブン型アーキテクチャでは、イベントサブスクライバーはどのように機能しますか?
イベントドリブン型アーキテクチャは、イベントに関するリアルタイムの通信を可能にするために接続され、配置された複数のハードウェアおよびソフトウェアコンポーネントで構成されます。
イベントパブリッシャー(イベントプロデューサーとも呼ばれる)は、イベントを検知または生成し、イベントバスまたはチャネルに情報を公開するシステムです。イベントパブリッシャーは、状態の変化を認識するように設計されています。イベントパブリッシャーには、データ変更時にイベントを公開するデータベースなどのシステム、アクションの完了を示すマイクロサービス、アクションの発生や条件の変更を示すモノのインターネット(IoT)デバイス、注文が処理されたときや新規ユーザーが登録されたときに通知を送信するCRMシステムなどがあります。
イベントバスは、イベントチャネルまたはイベントブローカーとも呼ばれ、イベントに関する情報がロードおよびオフロードされる場所です。イベントバスは、イベントパブリッシャーからリアルタイムでデータをインジェストし、特定のイベントをリッスンしているイベントサブスクライバーが情報を利用できるようにします。イベントバスはイベントストリームまたはメッセージキューとも呼ばれ、Apache Kafka、Amazon Kinesis、Google Pub/Subなどのプラットフォームが含まれます。
イベントサブスクライバーは、イベントリスナーまたはイベントコンシューマーとも呼ばれ、イベントに関するメッセージを受信するアプリケーション、サービス、デバイス、ユーザーです。異なるサブスクライバークラスは、特定のイベントやイベントクラスに関する情報を受信するように設計されています。通常、イベントサブスクライバーは、イベントデータが利用可能になるとすぐに受信するように設定されます。
イベントサブスクライバーは組織にどのようなメリットをもたらしますか?
イベントは、組織のあらゆる側面、およびそのプロセスと運用に影響を与えます。企業とその人、アプリケーション、システムがイベントに迅速に対応できれば、生産性、効率性、競争力が向上します。さまざまなビジネスクリティカルなイベントに関する情報を受信するようにイベントサブスクライバーを設定することで、組織はより効果的かつ効果的に業務を遂行できます。
イベントサブスクライバーはどのようにしてイベントをインジェストし、処理しますか?
イベントサブスクライバーは、さまざまな方法でイベントを受信、処理、応答します。
- 直接通知:イベントパブリッシャーは、イベントバスやブローカーを使用せずに、加入者に直接イベントを送信またはプッシュする場合もあります。
- プルモデル:サブスクライバーは、関心のあるキューから新しいイベントを定期的にチェックまたはプルすることもできます。これにより、バッチ処理と負荷分散が可能になります。ただし、このモデルでは、イベント処理に遅延が生じる可能性があります。
- パブリッシュ/サブスクライブ:パブリッシュ/サブスクライブインフラでは、メッセージブローカーを介して特定のイベントチャネルにサブスクライブしたイベントコンシューマーにメッセージングが送信されます。ブローカーは、イベントメッセージを受信し、必要に応じて変換し、メッセージを整理しておき、加入者にメッセージをプッシュして消費し、メッセージを削除します。このモデルでは、イベントを再生できないため、イベントサブスクライバーは過去にさかのぼってイベントにアクセスできません。
- イベントストリーミング:イベントストリーミングのアプローチでは、イベントはログに書き込まれ、すべてのイベントサブスクライバーは過去のイベントを含め、ストリームのどの部分からでもイベントにアクセスできます。イベントストリーミングは通常、ストリーミングプラットフォームによって処理されます。ストリーミングプラットフォームは、大量のイベントのロギングと送信を非常に高いスループット(多くの場合、1日あたり数兆ものイベント)で管理できます。ストリーミングプラットフォームでは、レコードが特定の期間保持されるイベントの永続化が可能です。また、ストリーミングプラットフォームでは、イベントサブスクライバーが一連のイベントを消費して処理し、傾向や特定の条件を特定する複雑なイベント処理も管理します。
イベントサブスクライバーはどのようなタイプのイベントを消費しますか?
イベントサブスクライバーは、非常に単純なものから非常に複雑なものまで、さまざまなイベントを利用できます。以下のような場合です。
- 事業取引:これらのイベントは、オンラインでの登録、注文、支払いの完了、注文ステータスの変更などのビジネスプロセスに関連しています。
- ユーザーアクション:アプリケーションまたはシステムを使用するユーザーによって生成されるこれらのアクションには、クリック、フォーム送信、ログイン/ログアウトアクティビティ、ページナビゲーションなどがあります。
- 通知:特定のイベントは、システムの他の部分や外部システムに通知するために生成され、電子メールの送信、アラートのトリガー、レポートの生成などのアクションが含まれる場合があります。
- システムイベント:これらのイベントはシステム内で発生し、プロセスの完了、データの更新、システムエラー、スケジュールされたタスクの開始などによってトリガーされます。
- センサー入力:IoTアプリケーションでは、温度変化、動体検知、位置更新などに関連するセンサーデータによってイベントが生成される場合があります。
- データフィード:これらのイベントは、データベースの変更、ログファイルの新しいエントリ、APIやフィードなどの外部データソースからの更新などのデータ更新から発生します。
- ストリーム処理:リアルタイムのデータストリームを処理すると、株価の監視、ソーシャルメディアの投稿の分析、リアルタイムの分析に関連するイベントが生成される可能性があります。
- 状態の変更:一部のイベントは、システム内のオブジェクトまたはエンティティの状態の変更によって生成されます。たとえば、順序を「保留中」から「出荷済み」に変更したり、追跡システムのチケットのステータスを更新したりします。
- ライフサイクルイベント:これらのイベントは、サービスの起動やシャットダウン、新しいバージョンの展開、健全性チェックなど、システム内のコンポーネントのライフサイクルに関係します。
- 統合イベント:異なるシステムやサービス間のインタラクションによってイベントが生成され、データの同期やシステム境界を越えたアクションのトリガーに使用できる場合があります。
よくある質問(FAQ)
これらの用語は、イベントドリブン型アーキテクチャについて話すときに同じ意味で使用されることがよくありますが、微妙な区別を示すものもあります。一般的に、イベントコンシューマーは、イベントを消費して処理するコンポーネント、システム、サービスを指すより広い用語です。「イベントサブスクライバー」という用語は、メッセージングシステムやイベントブローカーについて話すときに一般的に使用されます。一方、「イベントリスナー」は、コールバックが登録されているプログラミングやソフトウェア開発のコンテキストで使用されることが多くなります。
イベント名は、イベント発生時に特定のアクションや応答を分類してトリガーするために、イベントドリブンシステム内で使用される識別子です。イベントパブリッシャーがイベントをラベル付けして、イベントサブスクライバーやリスナーがイベントを理解し、適切に対応できるようにすることで、イベントドリブン型アーキテクチャで重要な役割を果たします。
Akamai が選ばれる理由
Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。