Description: Implement a durable job queue to move long-running tasks such as email sending and transcoding off the request path.
Requirements:
- Handle job enqueue requests
- Track job status through processing states
- Validate job payload schema before enqueue
- Manage retry with exponential backoff on failure
- Provide job status query endpoint
Acceptance Criteria:
- Enqueue requests are handled
- Job status is tracked through states
- Payload schema is validated
- Retry with backoff works
- Status query endpoint is provided
Technical Details:
Files: backend/src/modules/../common/queue/queue.module.ts, backend/src/modules/notifications/notifications.service.ts
Libraries: bullmq, ioredis, @nestjs/bullmq
Description: Implement a durable job queue to move long-running tasks such as email sending and transcoding off the request path.
Requirements:
Acceptance Criteria:
Technical Details:
Files: backend/src/modules/../common/queue/queue.module.ts, backend/src/modules/notifications/notifications.service.ts
Libraries: bullmq, ioredis, @nestjs/bullmq