---
title: High-Performance Job Queue for Bun & AI Agents
description: "The fastest job queue for Bun with native MCP server for AI agents. SQLite persistence, cron jobs, DLQ, S3 backups. No Redis required."
template: splash
head:
  - tag: meta
    attrs:
      property: 'og:image'
      content: 'https://bunqueue.dev/og-image.png'
hero:
  tagline: "The job queue that ships with everything.<br/><strong>No Redis. No infrastructure. Built for AI agents.</strong>"
  image:
    file: ../../assets/hero.svg
  actions:
    - text: Get Started
      link: /guide/introduction/
      icon: right-arrow
      variant: minimal
    - text: GitHub
      link: https://github.com/egeominotti/bunqueue
      icon: github
      variant: minimal
    - text: npm
      link: https://www.npmjs.com/package/bunqueue
      icon: external
      variant: minimal
---

<div class="hp-section-header" style="margin-top: 2rem;">
  <span class="hp-badge">Coming Soon</span>
  <h2 class="hp-heading">bunqueue Dashboard</h2>
  <p class="hp-subtitle">A visual interface for managing queues, jobs, workers, and monitoring in real time.</p>
</div>

<div class="hp-bento-card hp-bento-wide" style="max-width: 800px; margin: 0 auto 1.5rem; padding: 0; overflow: hidden;">
  <video src="https://github.com/user-attachments/assets/e8a8d38e-b4a6-4dc8-8360-876c0f24d116" width="100%" controls autoplay loop muted playsinline style="display: block; margin: 0;"></video>
</div>

<p style="text-align: center; font-size: 0.95rem; color: var(--sl-color-gray-3); margin-bottom: 3rem;">Want early access? Reach out at <strong style="color: var(--sl-color-text);">egeominotti@gmail.com</strong></p>

<div class="hp-install-wrap">
  <div class="hp-install">
    <span class="hp-install-dollar">$</span>
    <span>bun add bunqueue</span>
  </div>
</div>

<div class="hp-stats">
  <div class="hp-stat">
    <div class="hp-stat-value">150K+</div>
    <div class="hp-stat-label">ops/sec</div>
  </div>
  <div class="hp-stat-divider" />
  <div class="hp-stat">
    <div class="hp-stat-value">&lt;1ms</div>
    <div class="hp-stat-label">p99 latency</div>
  </div>
  <div class="hp-stat-divider" />
  <div class="hp-stat">
    <div class="hp-stat-value">~50MB</div>
    <div class="hp-stat-label">memory</div>
  </div>
  <div class="hp-stat-divider" />
  <div class="hp-stat">
    <div class="hp-stat-value">0</div>
    <div class="hp-stat-label">external deps</div>
  </div>
</div>

```typescript title="app.ts"
import { Queue, Worker } from 'bunqueue/client';

const queue = new Queue('emails', { embedded: true });

await queue.add('welcome', {
  to: 'user@example.com',
  subject: 'Welcome aboard!',
  template: 'onboarding',
});

const worker = new Worker('emails', async (job) => {
  await sendEmail(job.data);
  await job.updateProgress(100);
  return { sent: true };
}, { embedded: true, concurrency: 5 });

worker.on('completed', (job, result) => {
  console.log(`Done: ${job.id}`, result);
});

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

<div class="hp-section-header" style="margin-top: 5rem;">
  <span class="hp-badge">Why bunqueue</span>
  <h2 class="hp-heading">Built different</h2>
  <p class="hp-subtitle">Everything you need for production workloads. Nothing you don't.</p>
</div>

<div class="hp-bento">
  <div class="hp-bento-card hp-bento-wide">
    <h3>Zero External Dependencies</h3>
    <p>No Redis, no RabbitMQ, no Kafka. Just Bun's native SQLite with WAL mode. Deploy anywhere in seconds &mdash; your entire queue infrastructure is a single file.</p>
  </div>
  <div class="hp-bento-card">
    <h3>Blazing Fast</h3>
    <p>150K+ ops/sec with sub-millisecond latency. Sharded priority queues scale with your CPU cores.</p>
  </div>
  <div class="hp-bento-card">
    <h3>Production Ready</h3>
    <p>Stall detection, dead letter queues, retries with backoff, rate limiting, S3 backups. All built-in.</p>
  </div>
  <div class="hp-bento-card hp-bento-wide">
    <h3>Native MCP Server for AI Agents</h3>
    <p>73 MCP tools, 5 resources, 3 prompts. AI agents can schedule tasks, manage pipelines, monitor queues, and control everything via natural language. Works with Claude, Cursor, Windsurf, and any MCP client. HTTP handlers let agents process jobs without deploying workers.</p>
  </div>
  <div class="hp-bento-card hp-bento-wide">
    <h3>Drop-in BullMQ Replacement</h3>
    <p>Familiar Queue and Worker API. Migrate from BullMQ in minutes, not days. Same patterns, same mental model, 32x better performance.</p>
  </div>
  <div class="hp-bento-card">
    <h3>Full TypeScript</h3>
    <p>End-to-end type safety with comprehensive generics. Your IDE autocompletes everything.</p>
  </div>
  <div class="hp-bento-card">
    <h3>Cron &amp; Scheduling</h3>
    <p>Cron expressions, delayed jobs, repeatable tasks. Schedule anything with timezone support.</p>
  </div>
  <div class="hp-bento-card">
    <h3>Simple Mode</h3>
    <p>Queue + Worker in one object. Routes, middleware, cron, circuit breaker, batch processing, deduplication &mdash; zero boilerplate.</p>
  </div>
  <div class="hp-bento-card hp-bento-wide">
    <h3>Workflow Engine</h3>
    <p>Orchestrate multi-step processes with a fluent TypeScript DSL. Saga compensation, conditional branching, parallel steps, retry with backoff, nested sub-workflows, signal timeouts, loops (doUntil/doWhile), forEach iteration, map transforms, schema validation (Zod-compatible), per-execution subscribe, and typed observability events. No Temporal, no Inngest, no cloud service &mdash; just <code>bunqueue/workflow</code>.</p>
  </div>
</div>

<div class="hp-section-header" style="margin-top: 5rem;">
  <span class="hp-badge">Deployment</span>
  <h2 class="hp-heading">Two modes, one API</h2>
  <p class="hp-subtitle">Run embedded in your process or as a standalone TCP server. Same code, different scale.</p>
</div>

<div class="hp-modes">
  <div class="hp-mode-card">
    <div class="hp-mode-tag">Embedded</div>
    <h3>In-process queue</h3>
    <p>Zero network overhead. Perfect for single-process apps, serverless, and prototyping.</p>
    <ul>
      <li>Zero config setup</li>
      <li>No network latency</li>
      <li>Microsecond operations</li>
      <li>Single process only</li>
    </ul>
  </div>
  <div class="hp-mode-card">
    <div class="hp-mode-tag">TCP Server</div>
    <h3>Standalone server</h3>
    <p>Multi-client architecture over TCP. Built for microservices and distributed workers.</p>
    <ul>
      <li>Multiple client connections</li>
      <li>HTTP + TCP APIs</li>
      <li>CLI management</li>
      <li>Horizontal scaling</li>
    </ul>
  </div>
</div>

<div class="hp-section-header" style="margin-top: 5rem;">
  <span class="hp-badge">Features</span>
  <h2 class="hp-heading">Everything included</h2>
</div>

<div class="hp-features">
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M3 4h18l-2 14H5L3 4z"/><path d="M8 4V2h8v2"/><circle cx="12" cy="11" r="2"/></svg>
    <strong>Priority Queues</strong>
    <span>Process critical jobs first</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 3"/></svg>
    <strong>Delayed Jobs</strong>
    <span>Schedule for later</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M1 4v6h6"/><path d="M23 20v-6h-6"/><path d="M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"/></svg>
    <strong>Retries &amp; Backoff</strong>
    <span>Automatic error recovery</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M12 20V10"/><path d="M18 20V4"/><path d="M6 20v-4"/><path d="M2 20h20"/></svg>
    <strong>Rate Limiting</strong>
    <span>Per-queue throttling</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><circle cx="12" cy="16.5" r="0.5" fill="currentColor"/></svg>
    <strong>Stall Detection</strong>
    <span>Auto-recover stuck jobs</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="2" y="3" width="20" height="18" rx="2"/><path d="M2 9h20"/><path d="M10 3v6"/><circle cx="12" cy="15" r="2"/><path d="M12 17v2"/></svg>
    <strong>Dead Letter Queue</strong>
    <span>Never lose a failed job</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4"/><path d="M8 2v4"/><path d="M3 10h18"/><path d="M8 14h.01"/><path d="M12 14h.01"/><path d="M16 14h.01"/><path d="M8 18h.01"/><path d="M12 18h.01"/></svg>
    <strong>Cron Jobs</strong>
    <span>Recurring schedules</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M6 21V9a9 9 0 0 0 9 9"/></svg>
    <strong>Parent-Child Flows</strong>
    <span>Job dependencies</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
    <strong>Progress Tracking</strong>
    <span>Real-time updates</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>
    <strong>Webhooks</strong>
    <span>HTTP event callbacks</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
    <strong>S3 Backup</strong>
    <span>Disaster recovery</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M18 20V10"/><path d="M12 20V4"/><path d="M6 20v-6"/></svg>
    <strong>Prometheus</strong>
    <span>Built-in metrics</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="4" y="4" width="16" height="16" rx="2"/><path d="M9 9h6v6H9z"/><path d="M9 1v3"/><path d="M15 1v3"/><path d="M9 20v3"/><path d="M15 20v3"/><path d="M20 9h3"/><path d="M20 14h3"/><path d="M1 9h3"/><path d="M1 14h3"/></svg>
    <strong>MCP Server</strong>
    <span>AI agent control</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
    <strong>Simple Mode</strong>
    <span>All-in-one, zero boilerplate</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M4 6h16M4 6l4 6-4 6M20 6l-4 6 4 6"/></svg>
    <strong>Workflow Engine</strong>
    <span>Saga, branching, parallel, retry, nested</span>
  </div>
  <div class="hp-feature-item">
    <svg class="hp-feature-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/><circle cx="12" cy="16" r="1" fill="currentColor"/></svg>
    <strong>Auth &amp; SSRF Protection</strong>
    <span>Token auth, webhook URL validation</span>
  </div>
</div>

<div class="hp-cta">
  <h2 class="hp-heading">Ready to ditch Redis?</h2>
  <p class="hp-subtitle">Get started with bunqueue in under a minute.</p>
  <div class="hp-cta-actions">
    <a href="/guide/introduction/" class="hp-cta-primary">Get Started</a>
    <a href="/guide/comparison/" class="hp-cta-secondary">bunqueue vs BullMQ</a>
  </div>
</div>
