{"id":48760,"library":"node-queue-processor","title":"node-queue-processor","description":"A Node.js queue processing application supporting AWS SQS and Google Pub/Sub with rate limiting. Version 1.0.9 is the latest and only stable release with no active development. It allows attaching workers to handle messages from multiple queue backends, includes built-in rate limiting backed by Redis, and requires manual configuration of queue instances. Differentiators include a simple worker-manager pattern and support for both SQS and Pub/Sub.","status":"active","version":"1.0.9","language":"javascript","source_language":"en","source_url":"https://github.com/github-kelvin/node-queue-processor","tags":["javascript","sqs","pubsub","subscriber","worker","queue","processor","message","pull"],"install":[{"cmd":"npm install node-queue-processor","lang":"bash","label":"npm"},{"cmd":"yarn add node-queue-processor","lang":"bash","label":"yarn"},{"cmd":"pnpm add node-queue-processor","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for RateLimit functionality (rate limiter uses Redis for state management)","package":"redis","optional":false}],"imports":[{"note":"CommonJS only. No ESM support.","wrong":"const Manager = require('node-queue-processor').Manager;","symbol":"Manager","correct":"const { Manager } = require('node-queue-processor');"},{"note":"Named export, not a subpath export.","wrong":"const Worker = require('node-queue-processor/Worker');","symbol":"Worker","correct":"const { Worker } = require('node-queue-processor');"},{"note":"Part of the main module exports.","wrong":"const RateLimit = require('node-queue-processor').RateLimit;","symbol":"RateLimit","correct":"const { RateLimit } = require('node-queue-processor');"}],"quickstart":{"code":"const { Manager, Worker, RateLimit } = require('node-queue-processor');\nconst AwsSqsQueue = require('node-queue-processor/lib/AwsSqsQueue');\n\nconst queue = new AwsSqsQueue({\n  access_key: process.env.AWS_ACCESS_KEY ?? '',\n  secret_access_key: process.env.AWS_SECRET_KEY ?? ''\n}, process.env.SQS_QUEUE_URL ?? '');\n\nconst worker = new Worker(async (data) => {\n  console.log('Processing:', data);\n  return 'done';\n}, new RateLimit({\n  process_per_period: 5,\n  period: 60\n}, {\n  id: 'my-worker',\n  redisConnection: {\n    host: process.env.REDIS_HOST ?? '127.0.0.1',\n    port: parseInt(process.env.REDIS_PORT ?? '6379', 10)\n  }\n}));\n\nconst manager = new Manager(queue);\nmanager.attachWorker('sample-handler', worker);\nmanager.start();\n\nconsole.log('Queue processor started...');","lang":"javascript","description":"Sets up a queue processor with AWS SQS, a rate-limited worker, and starts processing messages."},"warnings":[{"fix":"Use require('node-queue-processor/lib/AwsSqsQueue') or similar for queue classes.","message":"Queue classes are not exported from the main entry point; must be required from specific paths.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Ensure Redis is configured and accessible at the provided host and port.","message":"RateLimit requires a running Redis instance; without it the worker will fail silently.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Add { type: 'handler-name' } to message attributes.","message":"Message attributes must include a 'type' field matching the handler name; otherwise messages are ignored.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Install @types/node-queue-processor or create custom type declarations.","message":"No TypeScript definitions included; type checking is not available.","severity":"breaking","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.9':20 'activ':30 'allow':33 'applic':9 'attach':34 'aw':11 'back':49 'backend':42 'built':45 'built-in':44 'configur':55 'develop':31 'differenti':59 'googl':14 'handl':37 'includ':43,60 'instanc':58 'javascript':74 'latest':23 'limit':18,48 'manag':65 'manual':54 'messag':38,81 'multipl':40 'node':2 'node-queue-processor':1 'node.js':6 'pattern':66 'process':8 'processor':4,80 'pub/sub':15,73 'pubsub':76 'pull':82 'queue':3,7,41,57,79 'rate':17,47 'redi':51 'releas':27 'requir':53 'simpl':62 'sqs':12,71,75 'stabl':26 'subscrib':77 'support':10,68 'version':19 'worker':35,64,78 'worker-manag':63","created_at":"2026-06-07T16:58:19.275357+00:00","updated_at":"2026-06-07T16:58:19.275357+00:00","problems":[{"fix":"Use correct path: require('node-queue-processor/lib/AwsSqsQueue')","cause":"Queue classes are in the lib folder but not exposed in package.json main field.","error":"Cannot find module 'node-queue-processor/lib/AwsSqsQueue'"},{"fix":"Use require() instead of import.","cause":"Package is CommonJS only, but consumer tries to use ESM import.","error":"ERR_REQUIRE_ESM: require() of ES Module not supported"}],"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/github-kelvin/node-queue-processor#readme","github":"https://github.com/github-kelvin/node-queue-processor","docs":null,"changelog":null,"pypi":null,"npm":"node-queue-processor","openapi_spec":null,"status_page":null,"smithery":null,"categories":["messaging"],"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}}