I’ve been using BullMQ for several years and have been super happy with it. But lately, I realized I really needed grouping (being able to run only one job per group in sequence).
Since this is for an open-source, self-hostable project, I didn’t want to force users to pay for BullMQ Pro licenses for using it.
So, I decided to build my own queuing solution called GroupMQ, which allows you to group jobs together and run jobs in sequence based on a groupId.
I also needed a way to order jobs by timestamp, since my project receives events and maintaining the correct order is critical.
Some goodies: - Scalable with performance on par with BullMQ (except when ordering is enabled, since it requires delays) - Ordering based on Unix timestamps - Grouping jobs so they run sequentially (per groupId) - Scales with concurrency and multiple workers - Runs several groups in parallel
It’s available on npm as groupmq, and you can check out the repo here: https://git.new/groupmq
Note: The package could never be possible without BullMQ, all credit to them for building such a great library.