
bullmq-specialist
BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications.
- Installs
- 2.1K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/sickn33/agentic-awesome-skills --skill bullmq-specialist- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads bullmq-specialist automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
BullMQ Specialist
BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications.
Principles
- Await durable queue insertion and handle failures before acknowledging a request; worker completion can happen asynchronously
- Always set explicit job options - defaults rarely match your use case
- Idempotency is your responsibility - jobs may run more than once
- Backoff strategies prevent thundering herds - exponential beats linear
- Dead letter queues are not optional - failed jobs need a home
- Concurrency limits protect downstream services - start conservative
- Job data should be small - pass IDs, not payloads
- Graceful shutdown prevents orphaned jobs - handle SIGTERM properly
Capabilities
- bullmq-queues
- job-scheduling
- delayed-jobs
- repeatable-jobs
- job-priorities
- rate-limiting-jobs
- job-events
- worker-patterns
- flow-producers
- job-dependencies
Scope
- redis-infrastructure -> redis-specialist
- serverless-queues -> upstash-qstash
- workflow-orchestration -> temporal-craftsman
- event-sourcing -> event-architect
- email-delivery -> email-systems
Tooling
Core
- bullmq
- ioredis
Hosting
- upstash
- redis-cloud
- elasticache
- railway
Monitoring
- bull-board
- arena
- bullmq-pro
Patterns
- delayed-jobs
- repeatable-jobs
- job-flows
- rate-limiting
- sandboxed-processors
Patterns
Basic Queue Setup
Production-ready BullMQ queue with proper configuration
When to use: Starting any new queue implementation
import { Queue, Worker, QueueEvents } from 'bullmq'; import IORedis from 'ioredis';
// Shared connection for all queues const connection = new IORedis(process.env.REDIS_URL, { maxRetriesPerRequest: null, // Required for BullMQ enableReadyCheck: false, });
// Create queue with sensible defaults const emailQueue = new Queue('emails', { connection, defaultJobOptions: { attempts: 3, backoff: { type: 'exponential', delay: 1000, }, removeOnComplete: { count: 1000 }, removeOnFail: { count: 5000 }, }, });
// Worker with concurrency limit const worker = new Worker('emails', async (job) => { await sendEmail(job.data); }, { connection, concurrency: 5, limiter: { max: 100, duration: 60000, // 100 jobs per minute }, });
// Handle events
worker.on('failed', (job, err) => {
console.error(Job ${job?.id} failed:, err);
});
Delayed and Scheduled Jobs
Jobs that run at specific times or after delays
When to use: Scheduling future tasks, reminders, or timed actions
// Delayed job - runs once after delay await queue.add('reminder', { userId: 123 }, { delay: 24 * 60 * 60 * 1000, // 24 hours });
// Repeatable job - runs on schedule await queue.add('daily-digest', { type: 'summary' }, { repeat: { pattern: '0 9 * * *', // Every day at 9am tz: 'America/New_York', }, });
// Remove repeatable job await queue.removeRepeatable('daily-digest', { pattern: '0 9 * * *', tz: 'America/New_York', });
BullMQ sibling children are eligible to run in parallel; their array order does not sequence inventory, payment and notification. Model dependent stages as nested dependencies or a state machine, and make each external effect idempotent. The snippets are fragments, not production-ready code: supply sendEmail/app/queue definitions, protect Bull Board with authentication/authorization and redact job payload/errors. Share eligible Redis connections deliberately; workers need maxRetriesPerRequest null while HTTP producers should fail promptly. Close QueueEvents/FlowProducer and externally owned connections on shutdown. See connections and flows.
Job Flows and Dependencies
Complex multi-step job processing with parent-child relationships
When to use: Jobs depend on other jobs completing first
import { FlowProducer } from 'bullmq';
const flowProducer = new FlowProducer({ connection });
// Parent waits for all children to complete await flowProducer.add({ name: 'process-order', queueName: 'orders', data: { orderId: 123 }, children: [ { name: 'validate-inventory', queueName: 'inventory', data: { orderId: 123 }, }, { name: 'charge-payment', queueName: 'payments', data: { orderId: 123 }, }, { name: 'notify-warehouse', queueName: 'notifications', data: { orderId: 123 }, }, ], });
Graceful Shutdown
Properly close workers without losing jobs
When to use: Deploying or restarting workers
const shutdown = async () => { console.log('Shutting down gracefully...');
// Stop accepting new jobs await worker.pause();
// Wait for current jobs to finish (with timeout) await worker.close();
// Close queue connection await queue.close();
process.exit(0); };
process.on('SIGTERM', shutdown); process.on('SIGINT', shutdown);
Bull Board Dashboard
Visual monitoring for BullMQ queues
When to use: Need visibility into queue status and job states
import { createBullBoard } from '@bull-board/api'; import { BullMQAdapter } from '@bull-board/api/bullMQAdapter'; import { ExpressAdapter } from '@bull-board/express';
const serverAdapter = new ExpressAdapter(); serverAdapter.setBasePath('/admin/queues');
createBullBoard({ queues: [ new BullMQAdapter(emailQueue), new BullMQAdapter(orderQueue), ], serverAdapter, });
app.use('/admin/queues', serverAdapter.getRouter());
Validation Checks
Redis connection missing maxRetriesPerRequest
Severity: ERROR
BullMQ requires maxRetriesPerRequest null for proper reconnection handling
Message: BullMQ queue/worker created without maxRetriesPerRequest: null on Redis connection. This will cause workers to stop on Redis connection issues.
No stalled job event handler
Severity: WARNING
Workers should handle stalled events to detect crashed workers
Message: Worker created without 'stalled' event handler. Stalled jobs indicate worker crashes and should be monitored.
No failed job event handler
Severity: WARNING
Workers should handle failed events for monitoring and alerting
Message: Worker created without 'failed' event handler. Failed jobs should be logged and monitored.
No graceful shutdown handling
Severity: WARNING
Workers should gracefully shut down on SIGTERM/SIGINT
Message: Worker file without graceful shutdown handling. Jobs may be orphaned on deployment.
Unawaited queue.add in request handler
Severity: ERROR
Await queue insertion before reporting acceptance. Bound producer retries/timeouts so an unavailable Redis does not leave HTTP requests hanging; worker retry settings are different.
Potentially large data in job payload
Severity: WARNING
Job data should be small - pass IDs not full objects
Message: Job appears to have large inline data. Pass IDs instead of full objects to keep Redis memory low.
Job without timeout configuration
Severity: INFO
Jobs should have timeouts to prevent infinite execution
Message: Job added without explicit timeout. Consider adding timeout to prevent stuck jobs.
Retry without backoff strategy
Severity: WARNING
Retries should use exponential backoff to avoid thundering herd
Message: Job has retry attempts but no backoff strategy. Use exponential backoff to prevent thundering herd.
Repeatable job without explicit timezone
Severity: WARNING
Repeatable jobs should specify timezone to avoid DST issues
Message: Repeatable job without explicit timezone. Will use server local time which can drift with DST.
Potentially high worker concurrency
Severity: INFO
High concurrency can overwhelm downstream services
Message: Worker concurrency is high. Ensure downstream services can handle this load (DB connections, API rate limits).
Collaboration
Delegation Triggers
- redis infrastructure|redis cluster|memory tuning -> redis-specialist (Queue needs Redis infrastructure)
- serverless queue|edge queue|no redis -> upstash-qstash (Need queues without managing Redis)
- complex workflow|saga|compensation|long-running -> temporal-craftsman (Need workflow orchestration beyond simple jobs)
- event sourcing|CQRS|event streaming -> event-architect (Need event-driven architecture)
- deploy|kubernetes|scaling|infrastructure -> devops (Queue needs infrastructure)
- monitor|metrics|alerting|dashboard -> performance-hunter (Queue needs monitoring)
Email Queue Stack
Skills: bullmq-specialist, email-systems, redis-specialist
Workflow:
1. Email request received (API)
2. Job queued with rate limiting (bullmq-specialist)
3. Worker processes with backoff (bullmq-specialist)
4. Email sent via provider (email-systems)
5. Status tracked in Redis (redis-specialist)
Background Processing Stack
Skills: bullmq-specialist, backend, devops
Workflow:
1. API receives request (backend)
2. Long task queued for background (bullmq-specialist)
3. Worker processes async (bullmq-specialist)
4. Result stored/notified (backend)
5. Workers scaled per load (devops)
AI Processing Pipeline
Skills: bullmq-specialist, ai-workflow-automation, performance-hunter
Workflow:
1. AI task submitted (ai-workflow-automation)
2. Job flow created with dependencies (bullmq-specialist)
3. Workers process stages (bullmq-specialist)
4. Performance monitored (performance-hunter)
5. Results aggregated (ai-workflow-automation)
Scheduled Tasks Stack
Skills: bullmq-specialist, backend, redis-specialist
Workflow:
1. Repeatable jobs defined (bullmq-specialist)
2. Cron patterns with timezone (bullmq-specialist)
3. Jobs execute on schedule (bullmq-specialist)
4. State managed in Redis (redis-specialist)
5. Results handled (backend)
Related Skills
Works well with: redis-specialist, backend, nextjs-app-router, email-systems, ai-workflow-automation, performance-hunter
When to Use
- User mentions or implies: bullmq
- User mentions or implies: bull queue
- User mentions or implies: redis queue
- User mentions or implies: background job
- User mentions or implies: job queue
- User mentions or implies: delayed job
- User mentions or implies: repeatable job
- User mentions or implies: worker process
- User mentions or implies: job scheduling
- User mentions or implies: async processing
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
FAQ
What does the bullmq-specialist skill do?
BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications.
How do I install bullmq-specialist?
Run npx skills add https://github.com/sickn33/agentic-awesome-skills --skill bullmq-specialist in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/bullmq-specialist/ (personal) or .claude/skills/bullmq-specialist/ (project).
Which AI agents can use bullmq-specialist?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is bullmq-specialist safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains bullmq-specialist?
It is published by sickn33 in sickn33/agentic-awesome-skills. It has 2,099 recorded installs.
More from sickn33/agentic-awesome-skills
docker-expert
sickn33/agentic-awesome-skills
You are an advanced Docker containerization expert with comprehensive, practical knowledge of container optimization, security hardening, multi-stage builds, orchestration patterns, and production deployment strategies based on current industry best practices.
nodejs-best-practices
sickn33/agentic-awesome-skills
Node.js development principles and decision-making. Framework selection, async patterns, security, and architecture. Teaches thinking, not copying.
typescript-expert
sickn33/agentic-awesome-skills
TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.
clean-code
sickn33/agentic-awesome-skills
This skill embodies the principles of "Clean Code" by Robert C. Martin (Uncle Bob). Use it to transform "code that works" into "code that is clean."
api-security-best-practices
sickn33/agentic-awesome-skills
Implement secure API design patterns including authentication, authorization, input validation, rate limiting, and protection against common API vulnerabilities
nextjs-best-practices
sickn33/agentic-awesome-skills
Next.js App Router principles. Server Components, data fetching, routing patterns.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.