Skip to content

v1.0.0

Choose a tag to compare

@abdiu34567 abdiu34567 released this 17 Mar 07:01
· 10 commits to main since this release

🚀 Release Notes: Notify Worker SDK v1.0.0

📢 Notify Worker SDK v1.0.0 is here! 🎉
This is the first stable release of the Notify Worker SDK, designed to simplify multi-channel notification dispatching using Redis-backed job queues.

🔹 Fully supports:
✅ Firebase (Push Notifications)
✅ Telegram Bot Messaging
✅ Email (via SMTP)
✅ Web Push Notifications


📦 What's New in v1.0.0?

1️⃣ Core Features

🔹 Multi-Channel Notification Support → Send notifications via Firebase, Telegram, Email, and Web Push.
🔹 Redis-Powered Job Queueing → Uses BullMQ for scalable notification handling.
🔹 Batch Processing & Rate Limiting → Efficiently process thousands of notifications per batch.
🔹 Response Tracking → Optionally store success/error stats in Redis for analytics.
🔹 Configurable Logging → Enable/disable logging based on environment needs.
🔹 Custom Notifier Support → Extend functionality by implementing your own notification channel.


2️⃣ Key Improvements & Optimizations

⚡ Improved Error Handling

  • Added exponential backoff retry for transient failures in database queries & notifications.
  • Errors are now explicitly logged for better debugging.

⚡ Optimized Rate Limiting

  • Introduced a Token Bucket Rate Limiter for smoother database & API rate control.
  • Prevents API throttling issues when dispatching notifications at scale.

⚡ Refactored Notification Notifiers
✅ Firebase Notifier: Now properly supports per-user metadata, ensuring unique push messages per recipient.
✅ Email Notifier: Optimized SMTP handling with rate control & enhanced error logging.
✅ Telegram Notifier: Improved message formatting and API reliability.
✅ Web Push Notifier: Fixed missing metadata issues, improved concurrency & VAPID handling.


3️⃣ Simplified API for Starting Workers

import Redis from "ioredis";
import { startWorkerServer } from "notify-worker-sdk";

const redis = new Redis("redis://localhost:6379");
startWorkerServer({
  redisInstance: redis,
  queueName: "notifications",
  concurrency: 20,
  notifiers: {
    telegram: { botToken: process.env.BOT_TOKEN as string },
  },
});

✅ One-liner Worker Initialization! 🚀


🔧 How to Upgrade

If you're upgrading from an earlier version:

npm install queue-notifier@latest

Then update your worker startup scripts to use the new simplified API.


📚 Documentation

📖 Full documentation available in the README.md.


🙌 Acknowledgments

A big thank you to everyone who contributed through testing, feedback, and PRs! 🎉

🔥 Excited for v1.0.0? Please give the repo a ⭐ on GitHub. 🚀
📩 Found an issue? Report it on the GitHub Issues Page.


🚀 v1.0.0 is live! Let’s scale notifications like never before! 🎉

Happy coding! 💻🚀