Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Queue Rate Limit Laravel Package

mxl/laravel-queue-rate-limit

mxl/laravel-queue-rate-limit lets you throttle Laravel queue jobs per queue, capping how many are processed in a given time window. Configure limits in your queue config to protect external APIs and downstream services from job bursts.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Queue worker lifecycle and cost modeling. This release fixes a real operational edge case: queue:work --stop-when-empty previously exited while jobs were still pending behind a rate-limit window. For a PM, that translates directly into "did my batch job actually finish?" — which affects SLA commitments, nightly report delivery, and whether you can safely run ephemeral workers (Kubernetes Jobs, Fargate tasks, CI runners) instead of always-on daemons.
  • Build vs. buy on rate-limit handling. If your roadmap includes any third-party integration with quotas (payments, email/SMS providers, CRM sync, search indexing, AI APIs), you either hand-roll backoff-and-requeue logic or adopt a package that already handles the "wait for the window, then retry" semantics correctly. This release is evidence the latter is being actively hardened against the failure modes teams usually discover in production.
  • Batch and backfill feature feasibility. "Re-index 2M records," "resync all accounts," "send the migration announcement" — these are product asks gated on whether a bounded worker can drain a rate-limited queue unattended. The regression coverage here (rate-limited pending, empty, and multi-queue ordering) is the kind of thing that lets you commit to a delivery date with more confidence.
  • Multi-queue prioritization as a product lever. The explicit preservation of multi-queue processing order means you can keep "transactional email before marketing email" or "paid-tier sync before free-tier" as a design decision rather than a workaround.
  • Support and on-call load. Every one of these fixes is a class of incident your team no longer gets paged for. That's a reliability decision as much as an engineering one.

When to Consider This Package

Adopt when:

  • You run queue workers in ephemeral or auto-scaling infrastructure where --stop-when-empty is part of the execution contract (batch containers, cron-triggered workers, CI pipelines).
  • You integrate with any external API that publishes a rate limit, especially where exceeding it causes throttling, account penalties, or hard failures rather than simple retries.
  • You process multiple queues with different business priorities and need ordering guarantees to survive rate-limit backpressure.
  • Your team is currently writing bespoke release()/sleep() loops inside jobs to handle throttling — that's the signal you're reinventing this.

Look elsewhere or defer when:

  • Your queues are purely internal, non-rate-limited, and workers run as long-lived supervised daemons where --stop-when-empty is never used. The specific value here is narrow.
  • You need cross-service distributed rate limiting (shared budgets across many worker pools or regions). A single-application queue middleware may not be the right layer.
  • You're on a Laravel version that doesn't ship the underlying queue middleware contracts — verify compatibility before planning around it.
  • You want observability-first rate limiting (dashboards, quota burn-down, alerting on near-limit). This appears to be a correctness fix, not a monitoring product; pair it with your own instrumentation.

How to Pitch It (Stakeholders)

For executives: A maintenance release that closes a reliability gap in how background jobs handle third-party rate limits. The practical impact is that scheduled and batch workloads now terminate only when the work is genuinely done, rather than silently exiting early and leaving jobs stranded. That reduces the class of "the report just didn't send" incidents and makes short-lived, cost-efficient worker infrastructure viable.

For engineering: --stop-when-empty no longer races with rate-limit backpressure. Workers now wait for the nearest window and retry when the queue is non-empty, while preserving existing semantics for truly empty queues and multi-queue processing order. Three new regression tests lock in the behavior across rate-limited pending, empty, and multi-queue scenarios.

For the PM's own roadmap note: This is a low-drama, high-leverage update. No breaking changes, no migration work. The reason to act on it is that the bug it fixes is one of those quiet failure modes that surfaces as a missed deadline rather than a stack trace — worth upgrading on your next scheduled dependency bump rather than waiting for an incident to justify it.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk