For background jobs (work that shouldn't block the HTTP response), NestJS integrates with BullMQ (a Redis-backed queue) via @nestjs/bullmq. You add jobs to a queue and process them asynchronously in separate workers — keeping requests fast and handling heavy or deferred work reliably.
The problem queues solve
Some work is too slow or shouldn't block the request:
✗ sending emails, processing images/video, generating reports, calling slow APIs
→ doing it inline makes the user wait and risks timeouts/failures
✓ QUEUE the work → respond immediately → a worker processes it in the background
