イベントストリーミング

イベントストリーミングは、ソフトウェアが一つのアプリケーションから別のアプリケーションにイベントデータを送信し、何をしているかを継続的に通信するアプローチです。 あるサービスが行うすべてのことを他のすべてのサービスにブロードキャストする様子を想像してください。 サービスによって行われる各活動はイベントと呼ばれ、これがイベントストリーミングの由来です。 たとえば、NASDAQは毎秒、株価と商品価格の更新を受け取ります。 特定の株式セットを監視するアプリケーションを動かすとしたら、その情報をほぼリアルタイムで受け取りたいでしょう。 Yahoo! Financeは、NASDAQから引っ張ってきたデータを引用し、その情報(またはイベント)を購読するアプリケーションに送信(またはストリーム)するAPIを提供しています。 送信されるデータおよびそのデータ(株価)の変化がイベントであり、それらをアプリケーションに配信するプロセスがイベントストリーミングです。

解決すべき問題はなんですか

従来、Yahoo! Financeは単一のTCPリクエストを使用していました。 これは、イベントごとに接続を確立する必要があるため、非常に非効率的です。 データがよりリアルタイム性を帯びるにつれて、そのような解決策をスケーリングすることは非効率的になります。 接続を一度開いてイベントが流れるようにすることは、リアルタイム収集として理想的です。 生成されるデータの量は指数関数的に増加しており、それに伴いデータの状態は絶えず変動しています。 開発者とユーザーは、そのデータをほぼリアルタイムで見ることができる必要があります。

どのように役に立つのでしょうか

イベントストリーミングにより、データの変更をソースから受信者に通信できます。 情報を要求するためにサービスが待つ代わりに、サービスはそのすべてのイベント(または活動)を継続的にストリームします。 情報がどうなるかについては関心を持ちません。 必要なことを行い、それをブロードキャストするだけで、他のどのサービスとも完全に独立しています。