EventEmitterとジョブキューは、処理をどこで動かし、プロセスが止まったらどうするかで選びます。
EventEmitterは1つのNode.jsプロセス内のリスナーに通知します。永続キューは、ワーカーが後で処理する仕事を保存します。どちらも責任を分離しますが、障害時の動作が異なります。
1. ローカル通知の流れを見る
あるコンポーネントが初期化を終え、同じプロセスの他のコンポーネントに反応してほしいとします。EventEmitterが自然な選択です。リスナーを登録してイベントを発行します。
[One process]
emit("ready") -> Listener A
-> Listener B
Node.jsは登録順にリスナーを同期的に呼びます。イベント自体は後から登録するリスナーのために保存されず、未完了の仕事はプロセスの異常終了を超えて残りません。。
