VarMQ v1.5.0 is out! Lightweight Go Job Queues with Queue Priority Support

Hey gophers! :wave:

Shipped VarMQ v1.5.0! In case you haven’t heard of it, VarMQ is a lightweight, in-process job queue library for Go. It supports standard, priority, persistent, and distributed queues with a simple worker-based API. No external dependencies by default.

Anyway, here’s what’s new:

:arrows_counterclockwise: Default strategy change: multi-queue binding now defaults to Priority instead of RoundRobin.

:sparkles: Queue priorities: you can now assign processing priorities to individual queues when binding them to workers using the new WithQueuePriority option.

:sparkles: Default config modifiers: added standalone functions like DefaultConcurrency, DefaultStrategy, etc. so you can set global defaults for all new workers in one place.

:bug: Also fixed a subtle bug where redundant recursive calls in the worker event loop could silently swallow errors.

Feedback and issues welcome as always

Great update — switching the default strategy to Priority makes a lot of sense, especially for workloads where certain jobs must run first. The new WithQueuePriority option also gives better control over task handling without adding complexity. Nice to see the recursive bug fixed too — silent errors can be painful in production. By the way, I work with truckload liquidation pallets, and managing bulk inventory and order processing also depends heavily on priority-based systems. Efficient queue handling like this can really help in logistics and large-scale operations. Solid release overall — looking forward to future improvements!

1 Like

Thanks for the kind words, Gohar! Glad you agree on the strategy shift. I realized that in most real-world scenarios, people usually want ‘important’ over ‘equal’ by default