Skip to content

Releases: CMPNION/queue-wrap

v1.0.0: The Enterprise-Grade, Type-Safe Redis Queue for Go

Choose a tag to compare

@CMPNION CMPNION released this 21 Apr 14:52
af3df40

📝 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 BLMOVE to transition jobs from wait to active lists.
  • Worker Heartbeats & Reaper: If a worker crashes unexpectedly (OOM, SIGKILL), a background orchestrator automatically detects the stalled jobs via VisibilityTimeout and 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:

  • BeforeProcess
  • AfterProcess
  • OnRetry

🧪 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.18 or higher (for Generics).
  • Redis: 6.2 or higher (for BLMOVE support).

📄 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

0.1

Choose a tag to compare

@CMPNION CMPNION released this 21 Apr 07:36
47afaed