Очереди
Очередь позволяет сказать «сделай это позже» вместо «сделай это сейчас». Когда пользователь регистрируется, вы не хотите, чтобы он ждал, пока вы отправляете приветственное письмо и меняете размер его аватара. Поместите эти задачи в очередь (RabbitMQ, BullMQ, Cloudflare Queues, SQS); фоновый обработчик их подхватит. Пользователь получает мгновенный ответ.
Используйте очередь для любой задачи, которая медленная, может упасть и повториться или не обязана завершиться до того, как вы ответите пользователю.
Подвох, на который натыкается большинство новичков, в том, что поставленная в очередь задача может выполниться более одного раза — сбой сети заставляет обработчик повторить попытку, и теперь приветственное письмо уходит дважды. Исправление — сделать задачи идемпотентными: спроектировать их так, чтобы запуск одной и той же задачи дважды давал тот же эффект, что и один раз (проверьте «я уже отправил это?» перед отправкой). Также заранее решите, что происходит с задачей, которая постоянно падает; зрелые очереди направляют её в очередь недоставленных сообщений (dead-letter queue), чтобы одно «отравленное» сообщение не блокировало всё, что стоит за ним.