キュー
キュー は「今やる」の代わりに「これを後でやる」と言えるようにします。ユーザーがサインアップしたとき、ウェルカムメールを送りアバターをリサイズするあいだ、ユーザーを待たせたくありません。それらのジョブをキュー (RabbitMQ、BullMQ、Cloudflare Queues、SQS) に積みます。バックグラウンドのワーカーがそれらを拾い上げます。ユーザーは即座の応答を受け取ります。
遅い、失敗してリトライしうる、あるいはユーザーに応答する前に完了する必要のない、あらゆるタスクにキューを使いましょう。
ほとんどの初心者がぶつかる落とし穴は、キューに入れたジョブが 2回以上 実行されうることです — ネットワークの瞬断でワーカーがリトライし、ウェルカムメールが二度送られます。直し方は、ジョブを 冪等 (idempotent) にすることです: 同じジョブを2回実行しても1回実行したのと同じ効果になるよう設計します (送る前に「もう送ったか?」を確認)。また、失敗し続けるジョブをどうするかを先に決めましょう。成熟したキューはそれを デッドレターキュー に回し、毒入りメッセージ1つがその後ろに並ぶすべてを塞がないようにします。