qstash-js  by upstash

Serverless messaging and scheduling SDK

Created 3 years ago
253 stars

Top 99.3% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

QStash is an HTTP-based messaging and scheduling solution designed for serverless and edge runtimes. It provides a durable, at-least-once delivery mechanism for messages between distributed applications, benefiting developers building scalable, event-driven architectures on platforms like AWS Lambda, Cloudflare Workers, and Next.js.

How It Works

QStash operates as an intermediary message broker. Developers send messages via HTTP requests to QStash, which durably stores them and delivers them to specified destination APIs. The system automatically retries delivery if the destination is unavailable, guaranteeing at-least-once delivery without requiring persistent TCP connections, making it ideal for stateless serverless environments.

Quick Start & Requirements

  • Install: npm install @upstash/qstash
  • Prerequisites: An Upstash Console account to obtain a QSTASH_TOKEN. For Node.js versions prior to v18, an isomorphic-fetch polyfill is required.
  • Setup: Obtain authorization token from Upstash Console.
  • Links: Documentation is available via a "Docs" link in the README.

Highlighted Details

  • Graduated to General Availability (GA) stage with full professional support.
  • Supports direct publishing to LLM providers, simplifying integration.
  • Designed for serverless, edge, and client-side environments.

Maintenance & Community

The Upstash team is committed to maintaining and improving the project, which receives regular updates and bug fixes. No specific community channels (e.g., Discord, Slack) or roadmap links are provided in the README.

Licensing & Compatibility

The README does not specify the open-source license. This omission requires clarification for commercial use or integration into closed-source projects.

Limitations & Caveats

The SDK sends anonymous telemetry data by default, which can be opted out via the UPSTASH_DISABLE_TELEMETRY environment variable or enableTelemetry: false client option. The absence of a stated license is a significant adoption blocker. The project requires Bun for local development and testing.

Health Check
Last Commit

16 hours ago

Responsiveness

1 day

Pull Requests (30d)
5
Issues (30d)
0
Star History
3 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.