Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
avifenesh avatar

Glide Mq

  • 10 installs
  • 93 repo stars
  • Updated August 4, 2026
  • avifenesh/glide-mq

glide-mq is a Claude Code skill for building message queues, workers and job workflows with the glide-mq library on Valkey/Redis Streams.

About

glide-mq is a message queue for Node.js built on Valkey/Redis Streams with a Rust NAPI core. This skill provides the API reference and code patterns for creating queues, workers and producers, plus delayed and priority jobs, retries, DAG workflows, cron schedulers and fan-out broadcasts. It also documents AI-native primitives like token and cost tracking, output streaming, suspend/resume and model fallback chains. A developer uses it when building background job processing or LLM orchestration on Valkey or Redis.

  • Build queues, workers and producers on Valkey/Redis Streams for background jobs
  • Delayed, priority, bulk, batch, DAG workflows, request-reply and cron schedulers
  • AI-native primitives: token/cost tracking, streaming, suspend/resume, budget caps, fallback chains

Glide Mq by the numbers

  • 10 all-time installs (skills.sh)
  • Ranked #3,590 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

glide-mq capabilities & compatibility

Capabilities
api development · orchestration · database
Works with
redis
Use cases
api development · orchestration · database
Pricing
Free
From the docs

What glide-mq says it does

High-performance AI-native message queue for Node.js on Valkey/Redis Streams with a Rust NAPI core.
SKILL.md
Creates message queues, workers, job workflows, and fan-out broadcasts using glide-mq on Valkey/Redis Streams.
SKILL.md
npx skills add https://github.com/avifenesh/glide-mq --skill glide-mq

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs10
repo stars93
Last updatedAugust 4, 2026
Repositoryavifenesh/glide-mq

What it does

Build background job queues, workers and LLM-orchestration workflows on Valkey/Redis Streams with glide-mq.

Who is it for?

Building Node.js background job queues, workers and DAG workflows on Valkey or Redis Streams

When should I use this skill?

When creating queues, workers, producers, schedulers, workflows or LLM job orchestration on Valkey/Redis

What you get

Working queues, workers, schedulers and AI-native workflows built with glide-mq

By the numbers

  • 10-priority core API reference table
  • bulk ingestion of 10,000 jobs in ~350ms

Files

SKILL.mdMarkdownGitHub ↗

glide-mq

High-performance AI-native message queue for Node.js on Valkey/Redis Streams with a Rust NAPI core.

Quick Start

import { Queue, Worker } from 'glide-mq';

const connection = { addresses: [{ host: 'localhost', port: 6379 }] };

const queue = new Queue('tasks', { connection });
await queue.add('send-email', { to: 'user@example.com', subject: 'Hello' });

const worker = new Worker(
  'tasks',
  async (job) => {
    console.log(`Processing ${job.name}:`, job.data);
    return { sent: true };
  },
  { connection, concurrency: 10 },
);

worker.on('completed', (job) => console.log(`Done: ${job.id}`));
worker.on('failed', (job, err) => console.error(`Failed: ${job.id}`, err.message));

When to Apply

Use this skill when:

  • Creating or configuring queues, workers, or producers
  • Adding jobs (single, bulk, delayed, priority)
  • Setting up retries, backoff, or dead-letter queues
  • Building job workflows (parent-child, DAGs, chains)
  • Implementing fan-out broadcast patterns
  • Configuring cron/interval schedulers
  • Setting up connection options (TLS, IAM, AZ-affinity)
  • Working with batch processing or rate limiting
  • Tracking AI/LLM usage (tokens, cost, model) per job or flow
  • Streaming LLM output tokens in real-time
  • Implementing human-in-the-loop approval with suspend/resume
  • Setting budget caps (tokens, cost) on workflow flows
  • Configuring fallback chains for model/provider failover
  • Dual-axis rate limiting (RPM + TPM) for LLM API compliance
  • Aggregating rolling usage/cost summaries across queues
  • Searching jobs by vector similarity (KNN) with Valkey Search
  • Exposing queues or broadcasts over the HTTP proxy, including SSE endpoints
  • Integrating with frameworks (Hono, Fastify, NestJS, Hapi)
  • Deploying in serverless environments (Lambda, Vercel Edge)

Core API by Priority

PriorityCategoryImpactReference
1Queue & Job OperationsCRITICALreferences/queue.md
2Worker & ProcessingCRITICALreferences/worker.md
3Connection & ConfigHIGHreferences/connection.md
4Workflows & FlowProducerHIGHreferences/workflows.md
5Broadcast (Fan-Out)MEDIUMreferences/broadcast.md
6Schedulers (Cron/Interval)MEDIUMreferences/schedulers.md
7Observability & EventsMEDIUMreferences/observability.md
8AI-Native PrimitivesHIGHreferences/ai-native.md
9Vector SearchMEDIUMreferences/search.md
10Serverless & TestingLOWreferences/serverless.md

Key Patterns

Delayed & Priority Jobs

// Delayed: run after 5 minutes
await queue.add('reminder', data, { delay: 300_000 });

// Priority: lower number = higher priority (default: 0)
await queue.add('urgent', data, { priority: 0 });
await queue.add('low-priority', data, { priority: 10 });

// Retries with exponential backoff
await queue.add('webhook', data, {
  attempts: 5,
  backoff: { type: 'exponential', delay: 1000 },
});

Bulk Ingestion (10,000 jobs in ~350ms)

const jobs = items.map((item) => ({
  name: 'process',
  data: item,
  opts: { jobId: `item-${item.id}` },
}));
await queue.addBulk(jobs);

Batch Worker (Process Multiple Jobs at Once)

const worker = new Worker(
  'analytics',
  async (jobs) => {
    // jobs is Job[] when batch is enabled
    await db.insertMany(
      'events',
      jobs.map((j) => j.data),
    );
  },
  {
    connection,
    batch: { size: 50, timeout: 5000 },
  },
);

Batch mode is composable with priority and lifo: true jobs - list-popped jobs are dispatched into the same batch processor (chunked by batch.size).

Request-Reply (addAndWait)

const result = await queue.addAndWait(
  'compute',
  { input: 42 },
  {
    waitTimeout: 30_000,
  },
);
console.log(result); // processor return value

Serverless Producer (No EventEmitter Overhead)

import { Producer } from 'glide-mq';
const producer = new Producer('queue', { connection });
await producer.add('job-name', data);
await producer.close();

Graceful Shutdown

import { gracefulShutdown } from 'glide-mq';

// Registers SIGTERM/SIGINT handlers and returns a handle.
// await blocks until a signal fires - use as last line of your program.
const handle = gracefulShutdown([worker1, worker2, queue, events]);

// For programmatic shutdown (e.g., in tests):
await handle.shutdown();

// To remove signal handlers without closing:
handle.dispose();

Testing Without Valkey

import { TestQueue, TestWorker } from 'glide-mq/testing';
const queue = new TestQueue('tasks');
await queue.add('test-job', { key: 'value' });
const worker = new TestWorker(queue, processor);
await worker.run();

Problem-to-Reference Mapping

ProblemStart With
Need to create a queue and add jobsreferences/queue.md
Need to process jobs with workersreferences/worker.md
Jobs failing, need retries/backoffreferences/queue.md - Retry section
Need parent-child job dependenciesreferences/workflows.md
Need fan-out to multiple consumersreferences/broadcast.md
Need cron or repeating jobsreferences/schedulers.md
Connection errors or TLS/IAM setupreferences/connection.md
Stalled jobs or lock issuesreferences/worker.md - Stalled Jobs
Need real-time job eventsreferences/observability.md
Integrating with Fastify/NestJS/HonoFramework Integrations
Deploying to Lambda/Vercel Edgereferences/serverless.md
Need deduplication or idempotent jobsreferences/queue.md - Dedup
Need rate limitingreferences/queue.md - Rate Limit
Running tests without Valkeyreferences/serverless.md - Testing
Need to track LLM tokens/cost per jobreferences/ai-native.md - Usage Metadata
Need to stream LLM output tokensreferences/ai-native.md - Token Streaming
Need human approval before proceedingreferences/ai-native.md - Suspend/Resume
Need to cap token/cost budget on a flowreferences/ai-native.md - Budget
Need model fallback on failurereferences/ai-native.md - Fallback Chains
Need RPM + TPM rate limiting for LLM APIsreferences/ai-native.md - Dual-Axis Rate Limiting
Need rolling usage/cost summary across queuesreferences/ai-native.md - Usage Metadata
Need vector similarity search over jobsreferences/search.md
Need to aggregate usage across a flowreferences/ai-native.md - Flow Usage
Need to create or inspect flows over HTTPreferences/serverless.md - HTTP Proxy
Need cross-language HTTP or SSE accessreferences/serverless.md - HTTP Proxy

Critical Notes

  • Node.js 20+ and Valkey 7.0+ (or Redis 7.0+) required
  • At-least-once delivery - make processors idempotent
  • Priority: lower number = higher priority (0 is default, highest)
  • Cluster-native - hash-tagged keys (glide:{queueName}:*) work out of the box
  • All queue logic runs as a single Valkey Server Function (FCALL) - 1 round-trip per job
  • Connection format uses addresses: [{ host, port }] array, NOT { host, port } object
  • Never use `customCommand` - use typed API methods with dummy keys for cluster routing

Done When

  • npm test or the project-equivalent test command passes
  • await queue.getJobCounts() matches the expected queue state
  • no jobs are left unexpectedly stuck in active
  • any QueueEvents or SSE behavior touched by the change has been smoke-tested
  • temporary queues, workers, and listeners are closed cleanly

Full Documentation

https://www.glidemq.dev/

Related skills

FAQ

What backend does glide-mq run on?

Node.js applications backed by Valkey or Redis Streams, using a Rust NAPI core.

What AI-native features does it provide?

Usage/token/cost tracking, output token streaming, suspend/resume for human-in-the-loop, budget caps, fallback chains, dual-axis (RPM+TPM) rate limiting and vector search over jobs.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.