Вопрос проверяет, умеете ли вы отделять задачи, которые мешают стабильности и масштабированию основного сервиса.
В отдельные процессы или сервисы выносят долгие, ресурсоёмкие и нестабильные задачи. Это позволяет не блокировать основной поток обработки запросов. Также туда выносят задачи, которые требуют отдельного масштабирования. Такой подход повышает отказоустойчивость и предсказуемость latency. Монолитный сервис при этом остаётся проще и стабильнее.
Вынос задач в отдельные процессы или сервисы — это архитектурное решение, при котором определённые виды работы изолируются от основного приложения.
Долгоживущие задачи
Генерация отчётов.
Импорт/экспорт больших данных.
Обработка файлов.
CPU-bound задачи
ML-инференс и обучение.
Сложные вычисления.
Сжатие и шифрование.
Нестабильные или рискованные задачи
Работа с внешними API.
Парсинг и сторонние библиотеки.
Задачи с отдельным масштабированием
Очереди писем и уведомлений.
Фоновая обработка событий.
Периодические задачи
Cron-задачи.
Очистка данных.
Пересчёты агрегатов.
# API инициирует задачу
task_id = enqueue_heavy_task(payload)
Задачи выносят туда, где изоляция даёт выигрыш в стабильности, масштабируемости и контроле ресурсов.