| Hi everyone, I've been working on HydraMQ for past few months, a PostgreSQL queuing library for Node (to add to the ever growing list!) The core features that I think set it apart are:
- Enqueues can be part of _existing_ database transactions
- Multi-tenancy support is first class (round robin scheduling and per-tenant concurrency constraints)
- DB client agnostic
- High throughput
- 0 dependencies I've also added a suite of additional features that you would normally expect with this sort of library. Namely: - Scheduled messages (via a cron expr)
- Delayed messages
- Deduplicated messages
- Retries with user-defined back-off strategies
- Message prioritization (intra-tenant and inter-tenant). I've been working on a modern e-mail client - Marco (https://app.marcoapp.io) for several months, which leverages HydraMQ to great effect. For example: Ensuring certain types of job run sequentially (concurrency=1) on a per-user basis. This has eliminated a whole slew of potential race-hazards and other weird edge cases that I would've otherwise had to consider whilst also ensuring background worker resources are shared fairly across all users. Please let me know what you think! :-) |