Releases: CMPNION/queue-wrap
Release list
v1.0.0: The Enterprise-Grade, Type-Safe Redis Queue for Go
📝 Release Log
We are thrilled to announce the v1.0.0 release of bull-mini! 🎉
Built from the ground up with Clean Architecture principles and Go Generics, bull-mini provides a robust, highly reliable, and developer-friendly background job queue backed by Redis. This release transforms the library into an enterprise-ready tool that guarantees at-least-once delivery while completely eliminating runtime type assertions.
🔥 Key Highlights
🛡️ Strict Type Safety (Go 1.18+ Generics)
Say goodbye to map[string]any and risky type casting! Both Queue[T] and Worker[T] are strictly typed. Your job payloads are inherently safe, providing full autocomplete and compile-time checks in your processors.
🏗️ Bulletproof Reliability (At-Least-Once Delivery)
We implemented the Reliable Queue pattern.
- Uses atomic Redis
BLMOVEto transition jobs fromwaittoactivelists. - Worker Heartbeats & Reaper: If a worker crashes unexpectedly (OOM, SIGKILL), a background orchestrator automatically detects the stalled jobs via
VisibilityTimeoutand reclaims them back to the queue. Zero dropped jobs.
🔒 Native Idempotency
Prevent duplicate job processing effortlessly. Enqueue jobs with bullmini.WithIdempotencyKey("unique-id") to utilize atomic SETNX locks, guaranteeing a job is only enqueued once within a 24-hour rolling window.
⏱️ Advanced Scheduling & Backoff
- Delayed Jobs: Schedule jobs for future execution using Redis
ZSET. - Retry Policies: Built-in support for fixed backoff and Exponential Backoff with Jitter to prevent Thundering Herd scenarios when downstream APIs fail.
📊 Observability & Hooks Built-in
Easily integrate with Prometheus, OpenTelemetry, or structured logging (slog/zap). The new WorkerHooks[T] provide intuitive interception points:
BeforeProcessAfterProcessOnRetry
🧪 In-Memory Test Backend
Stop spinning up Redis containers for your unit tests! bull-mini now ships with a fully thread-safe, mutex-backed MemoryQueueRepository that complies with the core interfaces. Test your workers instantly and deterministically.
⚙️ Requirements
- Go:
1.18or higher (for Generics). - Redis:
6.2or higher (forBLMOVEsupport).
📄 License Change
The project is now distributed under the GPLv3 License to ensure open-source continuity and robust copyleft protections.
**Install the release:
0.1
Full Changelog: https://github.com/CMPNION/bull-mini/commits/0.1