イベントドリブンインテグレーションとは?
イベントドリブンインテグレーションは、イベントドリブンアーキテクチャ(EDA)の原則を使用して、コンポーネントがリアルタイムのビジネスモーメントを非同期イベントとして共有できるようにする、システムを統合する方法として定義できます。EDAを設計図と、イベントドリブンインテグレーションをその設計図を実装する方法と考えることができます。最も回復力が高くスケーラブルな実装をもたらすために、最適な技術、設計手法、ベストプラクティスのセットを使用します。
ESBやiPaaSなどの従来のインテグレーション形態は、インテグレーションコンポーネントを中心に配置しており、いくつかのデメリットがあります。
- インテグレーションコンポーネントが1つのデプロイ可能なアーティファクトに結合されており、スケーラビリティとアジリティの課題につながります。
- リモートデータソースへの接続は、より高いレイテンシとネットワーク障害のリスクを高めます
イベントドリブンインテグレーションは、インテグレーションインフラストラクチャを2つの異なる「レンズ」で見ます。
- コア: データ/イベントの移動を促進することに焦点を当てたシステムの部分を指します。
- エッジ: コネクタ、トランスフォーマー、コンテンツベースルーターなど、イベント処理に関するシステムの部分を指します。
本質的に、イベントドリブンインテグレーションは、複雑なインテグレーションプロセスをエッジに押し出しながら、コアが環境(クラウド、オンプレミス)や地域をまたいでデータを自由に移動できるようにすることで、インテグレーションを「裏返し」にします。

このアプローチは、システムのスケーラビリティ、アジリティ、適応性を改善しながら、イベントと情報のフローを最大化することに焦点を当てています。
イベントドリブンインテグレーションの「コア」効果
前回の記事では、開発者はRESTが最もよく知っているアプローチであるため、インテグレーションにより密結合なアプローチを選択することが多いと述べました。このアプローチは基本的にリスク軽減戦略であり、容量割り当ての懸念から少ないアセットをデプロイし、信頼性の低いプロトコル(HTTPなど)とネットワークインフラストラクチャによって引き起こされる外部の「ネットワークチャター」を削減する必要があります。
イベントプラットフォームは、トラフィックをより効果的に管理することでインフラストラクチャのリスクのいくつかを軽減できます。しかし、信頼性の高いイベントインフラストラクチャが整っていても、複雑性をエッジに移動するというイベントドリブンインテグレーションの中核的な原則に従う場合、どのエッジに移動すべきでしょうか:データソースのエッジか、宛先のエッジか?
コアの複雑なインテグレーションをエッジでデプロイ・配布するMicro-Integrationに分解することをお勧めします。このようにして、データのソースと宛先の両方の近くにMicro-Integrationを配置できます。これはネットワークと接続リスクを削減し、多くのインテグレーションシナリオでロジック/処理コンポーネントをデプロイして再利用できるようにします。
適切に設計されたイベントプラットフォームは、単一のイベントブローカーから複数の接続されたイベントブローカーを含むイベントメッシュにスケールでき(次の章でイベントメッシュについて深掘りします…乞うご期待!)、パブリッシュ・サブスクライブ、ピアツーピア、ストリーミング、リクエスト・リプライなど、さまざまなイベント交換パターンをサポートできます。
アセットを疎結合にすることで、イベントプラットフォームは以下を実現します。
- 個々のエッジコンポーネントのスケーリングを可能にします。
- 1つのコンポーネントのエラーが他のコンポーネントに影響するのを防ぎます。
- 他のコンポーネントに影響を与えることなく、個々のコンポーネントの進化/変更を可能にします。
イベントプラットフォームは、システム全体がより適切にスケールし、より高度なアジリティ、柔軟性、回復力を持てるようにするため、分散システムを統合するための理想的な「コア」となります。
エッジコンポーネント
コアのイベント配信レイヤーがイベントドリブンインテグレーションにイベントフローを合理化する能力を与える一方で、接続性とイベント処理を可能にするのはエッジコンポーネントです。
コネクタとイベントプロセッサを組み合わせて、多くの人が「Micro-Integration」と呼ぶものを作成できます。Micro-Integrationは、動いているデータを変更することに焦点を当てたマイクロサービスの一種と考えてください。変更の種類は、Micro-Integrationがサポートし提供するビジネス機能によって決まります。エッジコンポーネントは以下の機能を実行します。
- イングレスコネクタはデータソースからデータを取得し、データをドメイン固有の標準イベントモデルに変換して、メッシュ上に公開します。
- イグレスコネクタはメッシュ上のイベントにサブスクライブし、それらを宛先フォーマットに変換して、ダウンストリームデータソースを更新します。
- イベントプロセッサにはトランスフォーマー、コンテンツベースルーター、スキーマ/コンテンツバリデーターが含まれ、あらゆる種類のビジネスロジックを含む場合があります。
コネクタ(イングレスとイグレス両方)をデータソースの近くに配置することで、接続性とデータアクセスのリスクを削減し、信頼性、一貫性、パフォーマンスを向上させ、ネットワーク設定を容易にします。Micro-Integrationは、オープンソースフレームワークや、BoomiやMuleSoftなどの多くのiPaaS/インテグレーションベンダーが提供する既製コンポーネントを使用して構築できます。
要約すると、インテグレーションをエッジに移動する最大の特長の一つは、特定のビジネス機能要件を満たすために任意のタイプのエッジコンポーネントを組み合わせられることです。この柔軟性により、特定の技術やプラットフォームに制約されることなく、インテグレーションアーキテクチャ全体の成功に集中できます。
技術的メリット
従来のインテグレーションアーキテクチャは通常このような形をしています。

通常、RESTコネクタを介してデータをポーリングし、ルーティングを決定するためのハードコードされたマッピングと変換のセットを持ち、RESTコネクタを使用して受信者にメッセージを転送します。
このアプローチは通常、異なるクラウドや地域のコンポーネント間の脆弱な接続につながり、個々のコンポーネントが最小限の知識で絶えず変化するデータプライバシー規制を適用することを強いります。
対照的に、イベントドリブンインテグレーションはすべてのコンポーネントを疎結合にし、完全にイベントドリブンであり、より優れたパフォーマンス、スケーラビリティ、効率を可能にするためにイベントメッシュのすべての機能を活用します。イベントドリブンインテグレーションが解決する問題の多くは、従来のアーキテクチャが生み出す高い結合度に関連しています。

衝撃吸収
スピードミスマッチは、高速プロデューサー・低速コンシューマーパラダイムの別の呼び方です。衝撃吸収の仕組みがなければ、コンシューミングシステムが圧倒され、深刻な結果(注文の消失、劣悪な顧客体験など)につながる可能性があります。

イベントドリブンインテグレーションでは、イベントプラットフォームはサブスクライバーが自分のペースでイベントを消費できるようになるまでイベントストリームをバッファリングできます。バッファリング(または衝撃吸収)は、アーキテクチャの安定性と回復力を保証するために不可欠です。

可用性の欠如への対応
分散アーキテクチャでは、すべてのコンポーネントが常に同時に処理可能とは限りません。さらに、イベントの消失も望ましくありません。注文の消失、キャンセルの見落とし、不完全なトランザクション、在庫レベルや配送トラックの位置の不正確な把握など、多くの問題につながる可能性があるからです。これにより、イベントドリブンインテグレーションがいかなる状況でもイベント配信を保証することが不可欠になります。

イベントプラットフォームはイベントを発生順に保存し、コンシューマーが利用可能になったときにそれらをコンシューマーに配信/転送できます。これにより、特定のコンポーネントが失敗したり、切断や処理の滞留のために新しいメッセージを受信できなくなったりした場合でも、操作が継続されます。

エラーハンドリング
ハードウェア、ネットワーク、さらには処理の失敗は分散システムで頻繁に発生する可能性があり、これらの失敗がシステム全体に影響を与えないことが重要です。重要なのは、システムをできる限りシンプルに保ちながら、平均回復時間(MTR)を最小化し、中断を最小化する方法でこれらのエラーを処理することです。

エラーは通常、エラー処理キューに配置でき、そのキューは根本原因イベントに対処し、是正措置(必要に応じてトランザクションを再開始するなど)を取り、エラーの原因と影響について担当者に通知できる「修理ステーション」によって処理されます。
多くの分散システムは、適切にスケールできず、分散した地域を均一にカバーできないために、分散エラーの処理でつまずきます。イベントプラットフォームはこれらの問題に対処することでエラー処理をはるかに容易にできます。

イベントドリブンインテグレーションの進化
最適なイベントドリブンインテグレーションの実装に到達することは一夜にして起こりません。それは時間がかかる進化的なプロセスであり、段階的なマイルストーンで測定されます。その進化はビジネスと技術の両方の状況に影響を与えます。
ビジネスの観点から、イベントドリブンインテグレーション成功の最初の段階の一つは、主要なユーザー/顧客体験の迅速な改善です。これらの体験は、さまざまな情報サイロから抽出されている他の情報の集約によってさらに強化されます。多様な情報ストリームへのアクセスにより、ユーザー体験を向上させ、新しい市場を開拓することでビジネスが新しい収益ストリームを創出するのに役立つ革新的な新製品やサービスの作成が可能になります。
技術の観点から、イベントドリブンインテグレーションが最初にもたらすメリットの一つは、コンポーネントの疎結合と、予期しないトラフィックのバーストを適切に処理する「ショックアブソーバー」として機能する能力です。もう一つの重要なメリットは、複数の地域とクラウドにわたってシステムをスケールすることです。コアの基盤が整ったら、さまざまなインテグレーションパターンを実装し、エンタープライズ全体での再利用と自動化を促進するために公開できます。
ビジネスへの影響とメリット
イベントドリブンインテグレーションから恩恵を受けることが期待できる分野をいくつか紹介します。
ユーザーエクスペリエンスの向上
顧客体験はあらゆるビジネス戦略の重要な部分です。なぜなら、ロイヤルティ、より大きなシェア・オブ・ウォレット、より長期的な顧客維持につながるからです。
しかし、優れた顧客体験を実現することは容易ではなく、その過程で多くのビジネス上および技術的な課題に遭遇します。
否定的な顧客体験は、オンライントランザクションの完了に時間がかかりすぎること、注文の消失や誤配送、またはトラフィックの過多によるeコマースサイトの速度低下や障害によって引き起こされる可能性があります。
否定的な顧客体験につながる可能性のある技術的要因は多数あります。例えば、トラフィックバーストはパフォーマンスを低下させ、不安定性につながる可能性があります。処理が遅いか利用できないコンポーネントは、他の関連/接続されたコンポーネントの動作に影響を与える可能性があります。また、既存のデータフローに新しいコンポーネントを追加することでさえ、ダウンタイムや予期しないエラーの挿入につながる可能性があります。
これらの問題はすべての従来のインテグレーションプラットフォーム(iPaaS、ESBなど)で発生します。
イベントドリブンインテグレーションはいくつかの方法でこれらの問題に対処します。
- 受信トラフィックのバーストを吸収できることで、コンポーネントが自分のスピードでイベントを消費し、イベント配信を保証し、安定性を高め、レート制限やオーバープロビジョニングの必要性をなくすことができます。
- コンポーネントを互いに疎結合にし、コアイベントプラットフォームに接続することで、各コンポーネントを個別にスケールしやすくなり、既存のインフラストラクチャを変更する必要をなくすことで新しいコンポーネントを追加しやすくリスクも低くなります。
ビジネスの観点から、イベントドリブンインテグレーションの採用は、ユーザーが一貫したリアルタイム情報を得られるようにし、ダウンタイム/障害や注文の重複/消失を経験しないことを確保するのに役立ちます。
技術的観点から、より高い疎結合度はコンポーネント再利用率を高め、ポイントツーポイント接続の必要性をなくし、全体的な信頼性、安定性、回復力をより高いレベルで推進します。
情報の統合と可用性
適切な時に適切なコンテキストで適切な情報を持つことが、正しい決定を下し適切な行動を取る鍵です。しかし現実には、現代の企業では情報は複数のシステムにわたって分散しています。
ビジネスの観点から、これは異なる地域やクラウドのビジネス部門が同期していない、古い、または一貫性のないデータを持つことにつながります。また、評判を損ない、コストのかかるデータプライバシー違反につながる可能性もあり、顧客が自分のデータとデジタルアセットの単一ビューを取得できなくなることさえあります。
これらの状況の技術的原因は、異なるクラウドや地域のコンポーネント間の脆弱な接続、またはルーティングロジックがアプリケーション(またはiPaaSソリューション)にハードコードされていること、または最小限の外部可視性で絶えず変化するデータプライバシー規制を適用しようとする個々のコンポーネントに関連している可能性があります。
データサイロのこの問題を解決するには、すべてのシステムと地域にわたって統一的なファブリックを作成する必要があります。イベントドリブンインテグレーションでは、より多くの地理的に分散したイベントブローカーを追加し、それらをリンクしてイベントメッシュを形成することでイベントプラットフォームをスケールアウトできます。インテグレーションアプリケーションはその後、データソースの近くのエッジに存在し、ソースまたは宛先のデータソースをイベントメッシュに接続できるようになります。最後に、データセキュリティを保証するために、イベントパスレベルでアクセス制御を管理できます。
イベントドリブン戦略を採用する主要なメリットの一つは、複数のソースからのイベントストリームを統一された「真実のストリーム」に集約する能力です。もう一つのメリットは、誰がどこに公開でき、誰が何のデータを消費できるかを制御することで、インフラストラクチャレベルでデータプライバシールールを適用する能力です。これらすべては、ビジネスの「モーメント」をどこにいても関心のあるコンポーネントに自動的にルーティングする能力へと集約されます。
より迅速なイノベーション
ビジネスは常に収益を促進し利益率を改善する新しい方法を探しており、成長の鍵はイノベーションです。イノベーションは、異なる価格帯でのサービス/製品バンドルの提供から、全く新しいデジタル製品ラインの創造まで、多くの形を取ることができます。十分に速くイノベーションを起こさないと、新しく改善された体験を待つ不満で苛立った顧客につながる可能性があります。
柔軟性のない密結合なインテグレーションアーキテクチャは、新しいソリューションを提供するためにより長い開発時間とより高いコストを必要とすることでイノベーションを妨げる可能性があります。さらに、新しい機能を追加することで結合度のために既存の機能が壊れることがよくあります。
アジリティを妨げる技術的原因のいくつかは、より正確な意思決定のためにリアルタイムデータを消費できないことに根ざしています。これは通常、システムがイベントをサポートするように設計されていないか、たとえそうであっても、イベントソースはしばしばサイロ化された情報のみを提供し、特定の状況の完全なビューを提供しないという事実によるものです。
もう一つの理由は、設計パターンとコーディング標準の一貫性のない使用である可能性があります。例えば、より多くのアセット再利用を促進しアーキテクチャの相乗効果を改善するために、RESTアプリケーションとイベントドリブンアプリケーションの両方でペイロードスキーマを再利用するなど。最後に、ツールとインフラストラクチャのプロビジョニングプロセスが不適切で、合理化されたデジタルアセット管理ライフサイクルをサポートしていない可能性があります。
イベントドリブンインテグレーションはさまざまな方法でイノベーションを改善できます。例えば、疎結合なアーキテクチャは変更の影響をローカライズし、他のコンポーネントが影響を受けないようにします。
スケーラブルなイベントプラットフォームの使用は、スケーリングにおける広範な設定の必要性を削減し、情報のプロデューサーとコンシューマー両方のためにシームレスなプラグアンドプレイ環境を作成します。また、リアルタイムデータへのアクセスを容易にし、より良いユーザー体験とより正確な意思決定を促進します。最後に、イベント定義とイベントAPIへのアクセスを提供するデジタルアセットカタログを持つことで、発見と再利用が促進されます。
これらが整備されると、エンタープライズはより迅速に新製品を発売し、新しい収益チャネルを作成し、新しい市場に参入することで、イノベーションを加速し、市場の変化と需要により適切に対応できます。
結論
イベントドリブンインテグレーションは、分散システムを構築する異なる方法を提示します。従来のインテグレーションを「裏返し」にするアプローチ(つまり、コアをイベントとデータの移動に集中させながら、複雑なインテグレーションプロセスをエッジに置く)は、システムをより速く、よりスケーラブルで、柔軟で、回復力のあるものにします。
イベントドリブンインテグレーションは、従来のより大きなインテグレーションコンポーネントを取り、それらをよりシンプルな「Micro-Integration」に変換するため、システムをより適応性が高く、変化に対応しやすくします。
イベントドリブンインテグレーションによって提示されるアプローチには、ビジネスと技術の両方のメリットがあり、新しい収益源を促進するより簡単な方法と、コストを削減する方法の両方に変換されます。イベントドリブンインテグレーションは、インテグレーションの進化における大きなマイルストーンであり、テクノロジーが市場の需要とテクノロジーの進化の両方のペースに対応できる道を指し示すマイルストーンです。
