イベントドリブンアーキテクチャ

IoTなどでよく使われる。
イベントドリブンアーキテクチャ.png

役割

  • Event Producer
    • イベントストリームを生成する
  • Event Consumer
    • イベントをリッスンする
  • Event ProducerとEvent Consumerは分離されている。Event Producerはだれがイベントをリッスンしているのかを気にしない。Event Consumer同士もほかにだれが何をしているのかを気にする必要はない。
  • 全てのEvent Consumerはすべてのイベントを見ることができる。

モデル

イベントを受け取るモデルには大きく2種類存在する

  • パブリッシュ/サブスクライブモデル
    • サブスクリプションを管理する。後からイベントの再生はできない。サブスククライブしているときに発生したイベントを受け取ることができる。
  • イベントストリーミングモデル
    • イベントはログに書き込まれて保持される。クライアントはイベントのどの部分からでも読み取ることができる。クライアントは任意のタイミングで参加し、任意のタイミングのイベントを読み取ることができる。