Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Node.js
  3. agenda

agenda

NOASSERTIONHTMLagendash@8.2.4

A lightweight, pluggable job scheduling library for Node.js with support for MongoDB, PostgreSQL, and Redis backends.

Visit WebsiteGitHubGitHub
9.7k stars850 forks0 contributors

What is agenda?

Agenda is a lightweight job scheduling library for Node.js that allows developers to schedule and process background tasks with flexible timing options. It solves the problem of managing recurring or delayed jobs in Node.js applications by providing a persistent, scalable queue with support for multiple database backends. The library offers features like real-time notifications, automatic retry, debouncing, and a pluggable architecture for custom storage solutions.

Target Audience

Node.js developers building applications that require scheduled background jobs, such as sending emails, generating reports, data synchronization, or periodic cleanup tasks. It's particularly useful for teams needing a scalable, database-backed job queue with real-time processing capabilities.

Value Proposition

Developers choose Agenda for its pluggable backend system, allowing them to use MongoDB, PostgreSQL, or Redis without vendor lock-in. Its modern TypeScript foundation, real-time notification support, and comprehensive feature set (debouncing, retry strategies, persistent logging) make it a robust alternative to heavier job queues while maintaining a minimal footprint.

Overview

Lightweight job scheduling for Node.js

Use Cases

Best For

  • Scheduling recurring tasks like email reports or data backups in Node.js applications
  • Building scalable job queues with real-time processing across multiple workers
  • Implementing debounced job execution to handle rapid, duplicate events efficiently
  • Managing background jobs with automatic retry and backoff strategies for reliability
  • Self-hosting a job scheduler with support for multiple database backends
  • Adding a job dashboard and REST API to monitor and control scheduled tasks

Not Ideal For

  • High-throughput systems requiring built-in rate limiting and dead letter queues
  • Projects stuck on CommonJS modules, as Agenda v6 is ESM-only and Node.js 18+ only
  • Applications needing atomic job operations for strict consistency in distributed environments
  • Teams wanting a zero-dependency, in-memory scheduler without database setup or external backends

Pros & Cons

Pros

Pluggable Backend Flexibility

Agenda supports MongoDB, PostgreSQL, or Redis via separate packages, plus custom backends, avoiding vendor lock-in and adapting to existing infrastructure.

Real-Time Notifications

Optional notification channels like Redis pub/sub or PostgreSQL LISTEN/NOTIFY enable instant job processing in distributed setups, reducing polling delays.

TypeScript First Design

Fully rewritten in TypeScript with comprehensive type definitions, ensuring better developer experience and type safety across the API.

Advanced Job Control

Features like debouncing, automatic retry with backoff strategies, and persistent job logging provide robust handling for complex job workflows.

Human-Readable Scheduling

Supports cron syntax and natural language intervals (e.g., '3 days and 4 hours'), making job scheduling more intuitive compared to cron-only libraries.

Cons

Missing Rate Limiting

Agenda lacks built-in rate limiting, a feature available in competitors like BullMQ, requiring custom implementation for throttling job execution.

No Dead Letter Queues

Failed jobs don't have a dead letter queue mechanism out of the box, which can complicate error handling and job recovery in production systems.

ESM-Only Restriction

Version 6 is ESM-only and requires Node.js 18+, forcing migrations for CommonJS projects and limiting compatibility with older environments.

Notification Complexity

Real-time notifications require additional backend configuration (e.g., mixing MongoDB storage with Redis notifications), adding setup overhead compared to integrated solutions.

Frequently Asked Questions

Quick Stats

Stars9,688
Forks850
Contributors0
Open Issues19
Last commit3 days ago
CreatedSince 2013

Tags

#task-queue#redis#queue#job-scheduler#job-scheduling#cronjob#job#nodejs#typescript#mongodb#postgresql#background-jobs#runner#scheduler#real-time-notifications#task#crontab#cron

Built With

P
PostgreSQL
M
MongoDB
T
TypeScript
N
Node.js
R
Redis

Links & Resources

Website

Included in

Node.js65.5k
Auto-fetched 19 hours ago

Related Projects

BullBull

Premium Queue package for handling distributed jobs and messages in NodeJS.

Stars16,245
Forks1,418
Last commit4 days ago
bullmqbullmq

BullMQ - Message Queue and Batch processing for NodeJS, Python, Elixir and PHP based on Redis

Stars9,183
Forks655
Last commit20 hours ago
bee-queuebee-queue

A simple, fast, robust job/task queue for Node.js, backed by Redis.

Stars4,033
Forks222
Last commit4 days ago
breebree

Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax. Built for @ladjs, @forwardemail, @spamscanner, @cabinjs.

Stars3,291
Forks89
Last commit5 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub