Skip to content

Discussion: Queue System Technology Stack Choice #13

@productdevbook

Description

@productdevbook

🤔 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

  1. What's your experience with these queue systems?
  2. What scale do you expect to use NitroPing at?
  3. How important is ease of deployment vs advanced features?
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions