fanoutパターン
1つの入力を元に、複数の処理を実行したい場合に利用するパターン。
逐次でやるとパフォーマンスが落ちて、UXが下がる場合に利用する。
https://scrapbox.io/files/61286d15df8c5a002262987a.png
あるデータを元に、複数の処理を実行したいケースがある。例えば、画像をアップロードした後に、サムネイル、画像認識、メタデータのスキャンの三つのタスクを実行するなどのケースが該当する。
このような場合、画像アップロードを検知したアプリケーションからそれぞれの処理を呼び出して逐次処理は可能だが、各処理の時間が長い場合、トータルで非常に長くなる。例えば、画像アップロードをWeb 画面から実行した場合にサーバー側の処理が長ければ、ユーザーエクスペリエンスが悪くなる。 また、処理が増えた場合、例えばモノクロ画像作成のタスクを増やしたいような場合は、呼び出し元のプログラムを改修する必要が出てくる。