-
-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
🤔 Help Us Choose the Right Queue System
We're implementing a queue system for NitroPing and would love the community's input on technology choices!
Current Options We're Considering
Option 1: Redis + BullMQ
Pros:
- Excellent TypeScript support
- Rich UI dashboard (Bull Board)
- Advanced job scheduling features
- Great documentation
- Strong community
Cons:
- Requires Redis dependency
- More complex setup
Option 2: SQLite + Simple Queue
Pros:
- No additional dependencies
- Simpler deployment
- Works great for small-medium scale
- Built into most systems
Cons:
- Limited scalability
- Fewer features
- No built-in UI
Option 3: PostgreSQL + pg-boss
Pros:
- Uses existing PostgreSQL database
- Good TypeScript support
- No additional infrastructure
- Reliable and battle-tested
Cons:
- Ties queue to main database
- Fewer features than BullMQ
Option 4: Memory-based Queue (for development)
Pros:
- Zero setup for development
- Fast for testing
- No dependencies
Cons:
- Not persistent
- Only suitable for development
Questions for the Community
- What's your experience with these queue systems?
- What scale do you expect to use NitroPing at?
- How important is ease of deployment vs advanced features?
- Any other technologies we should consider?
Use Cases for NitroPing Queue
- Processing push notifications (FCM, APNs, WebPush)
- Handling delivery callbacks
- Retry failed notifications
- Rate limiting and throttling
- Scheduled notifications
- Analytics processing
Deployment Considerations
Since NitroPing is self-hosted, we want to balance:
- Ease of setup (fewer dependencies = easier deployment)
- Performance (handle thousands of notifications)
- Reliability (don't lose notifications)
- Monitoring (track job status and failures)
Vote with Reactions! 👍
- 👍 for Redis + BullMQ
- ❤️ for SQLite + Simple Queue
- 🚀 for PostgreSQL + pg-boss
- 👀 for Memory-based (dev only)
Drop a comment with your thoughts, experiences, or other suggestions!
This is a great opportunity to influence NitroPing's architecture. Your input will help us make the right choice for the community.
WH1TE-SHAD0W
Metadata
Metadata
Assignees
Labels
No labels