{"id":44919,"library":"fastify-queue","title":"fastify-queue","description":"A Fastify plugin that integrates BullMQ through file-based Queue and Worker creation. Version 1.3.0 is the latest stable release. It uses a glob pattern (bullPath) to automatically discover and register BullMQ queues and workers from the filesystem. TypeScript types are included. Key differentiators: automatic file-based discovery eliminates manual queue/worker registration; supports exporting queueConfig and workerConfig options alongside worker functions. This plugin is lightweight and designed specifically for Fastify applications needing job queues. It requires fastify >=3.24.1 and bullmq ^1.59.4 || ^5.0.0 as peer dependencies.","status":"active","version":"1.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/JonasHiltl/fastify-queue","tags":["javascript","fastify","bull","bullmq","jobs","queues","redis","typescript"],"install":[{"cmd":"npm install fastify-queue","lang":"bash","label":"npm"},{"cmd":"yarn add fastify-queue","lang":"bash","label":"yarn"},{"cmd":"pnpm add fastify-queue","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"required peer dependency for queue/worker functionality","package":"bullmq","optional":false}],"imports":[{"note":"ESM-only package; the default export is a Fastify plugin function. Using require will fail.","wrong":"const queue = require('fastify-queue')","symbol":"default","correct":"import queue from 'fastify-queue'"},{"note":"Type import for TypeScript; runtime import will cause error because the type is not value-exported.","wrong":"import { FastifyQueueOptions } from 'fastify-queue'","symbol":"FastifyQueueOptions","correct":"import type { FastifyQueueOptions } from 'fastify-queue'"},{"note":"In CJS, default export is accessed via .default. But the package is ESM-only, so require is not recommended.","wrong":"const { default: queue } = require('fastify-queue')","symbol":"default","correct":"import queue, { FastifyQueueOptions } from 'fastify-queue'"}],"quickstart":{"code":"import fp from 'fastify-plugin';\nimport queue from 'fastify-queue';\nimport { FastifyQueueOptions } from 'fastify-queue';\nimport IORedis from 'ioredis';\nimport Fastify from 'fastify';\n\nconst app = Fastify();\n\napp.register(fp<FastifyQueueOptions>(async (fastify, opts) => {\n  const connection = new IORedis({\n    maxRetriesPerRequest: null,\n    enableReadyCheck: false,\n  });\n  await fastify.register(queue, {\n    bullPath: '*/bull/**/*.js',\n    connection,\n  });\n}));\n\n// After registration, access queues and workers\napp.ready().then(() => {\n  // app.queues and app.workers are available after TypeScript augmentation\n  console.log('Plugin registered');\n});","lang":"typescript","description":"Registers fastify-queue with Redis connection and glob pattern, TypeScript augmentation for queue/worker access."},"warnings":[{"fix":"Ensure your TypeScript worker files are compiled to .js before runtime, or adjust bullPath to match .ts if using ts-node.","message":"The bullPath option requires a glob pattern that only matches .js files; .ts files are not compiled at runtime.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Check BullMQ v5 migration guide if upgrading from BullMQ 1.x.","message":"BullMQ version 5 introduced breaking changes; this plugin supports bullmq ^1.59.4 || ^5.0.0 but behavior may differ.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Ensure each worker file exports a default async function to create a worker; otherwise, only a queue is registered.","message":"The plugin automatically creates queues and workers; if a worker file does not export a default function, only a queue is created without a worker.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Structure files as subdirectories inside the bull path, e.g., bull/user/*.worker.ts creates queue named 'user'.","message":"Queue names are derived from subdirectory names under bullPath; file names inside subdirectories are ignored.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.3.0':19 '1.59.4':86 '3.24.1':83 '5.0.0':87 'alongsid':64 'applic':76 'automat':32,49 'base':13,52 'bull':93 'bullmq':9,36,85,94 'bullpath':30 'creation':17 'depend':90 'design':72 'differenti':48 'discov':33 'discoveri':53 'elimin':54 'export':59 'fastifi':2,5,75,82,92 'fastify-queu':1 'file':12,51 'file-bas':11,50 'filesystem':42 'function':66 'glob':28 'includ':46 'integr':8 'javascript':91 'job':78,95 'key':47 'latest':22 'lightweight':70 'manual':55 'need':77 'option':63 'pattern':29 'peer':89 'plugin':6,68 'queue':3,14,37,79,96 'queue/worker':56 'queueconfig':60 'redi':97 'regist':35 'registr':57 'releas':24 'requir':81 'specif':73 'stabl':23 'support':58 'type':44 'typescript':43,98 'use':26 'version':18 'worker':16,39,65 'workerconfig':62","created_at":"2026-06-07T12:52:29.433778+00:00","updated_at":"2026-06-07T12:52:29.433778+00:00","problems":[{"fix":"Run npm install fastify-queue and ensure tsconfig.json includes node_modules types.","cause":"Package not installed or TypeScript cannot resolve types.","error":"Cannot find module 'fastify-queue' or its corresponding type declarations."},{"fix":"Declare module augmentation as shown in README: declare module 'fastify' { interface FastifyInstance { queues: {...}; workers: {...} } }","cause":"TypeScript augmentation not declared.","error":"Property 'queues' does not exist on type 'FastifyInstance'."},{"fix":"Run npm install bullmq","cause":"Peer dependency bullmq is not installed.","error":"Error: Cannot find module 'bullmq'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/JonasHiltl/fastify-queue","github":"https://github.com/JonasHiltl/fastify-queue","docs":null,"changelog":null,"pypi":null,"npm":"fastify-queue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}