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

Retry Laravel Package

vkartaviy/retry

A Laravel retry helper that re-runs failed operations with configurable attempts, delays, and backoff. Wrap closures or jobs to handle transient errors gracefully, with support for conditional retries and custom exception handling.

Deep Wiki
Context7

Product Decisions This Supports

  • Reliability policy for third-party integrations: Defines the retry contract for flaky dependencies (payment gateways, CRM sync, webhooks, shipping APIs) — attempts, base delay, multiplier, jitter, and which exception classes are retryable. That is a product-level decision because it determines user-visible latency and failure messaging.
  • Retry budget / SLO trade-offs: Exponential backoff with jitter is the mechanism, but the PM decision is how long a user waits before seeing an error versus how hard we hammer a degraded downstream service. Use this package's knobs to prototype and validate those thresholds.
  • Build vs. buy vs. native: The capability is ~100 lines of control flow. Laravel already ships a global retry() helper and Http::retry(). Decision framing: adopt this package, write an internal utility, or standardize on the framework primitive — not a procurement decision.
  • Scope of retryable operations: Exception filtering forces an explicit list of what is safe to retry. This surfaces a product/engineering question: are our operations idempotent? Retrying a non-idempotent charge or order submission is a product incident, not a technical detail.
  • Queue job and webhook delivery roadmap: Useful as a reference implementation when scoping delivery guarantees (at-least-once, backoff windows, dead-letter behavior), even if the final code is in-house.
  • Observability requirements: The per-attempt and final-failure callbacks create a hook for logging/metrics. That supports decisions about surfacing retry counts in dashboards and alerting on exhaustion rates.

When to Consider This Package

Adopt only narrowly:

  • A legacy, framework-agnostic PHP service on an older PHP runtime needs a small fluent retry helper and the team accepts owning the code.
  • You want vendor/fork-and-own rather than depend on upstream: copy the source, add tests, pin it, and treat it as internal code.
  • You need a teaching/reference implementation for backoff, jitter, and exception filtering semantics while designing your own utility.
  • Extremely low-risk, non-critical paths where a failure is tolerable and the code is isolated behind an interface.

Look elsewhere — or build natively — when:

  • Laravel 8+ is in use. Use the built-in retry() helper and Http::retry(); they are maintained, tested against current PHP, and already in the framework. Adding a 2015 package is negative value.
  • Maintenance and security posture matter. Last release 2015-05-06 — roughly a decade without updates. Treat it as abandoned. No modern CI, no PHP 8.x validation, no security response process.
  • Provenance is unverifiable. Repository is unknown and the package has ~29 stars. Supply-chain review will likely block it for production without vendoring and audit.
  • You need more than a loop: circuit breakers, distributed retry coordination, idempotency keys, retry budgets across services, dead-letter queues, async/scheduled retries, or first-class telemetry. This package does none of that.
  • Modern PHP types/static analysis are required. Expect to modernize the code during a fork.

How to Pitch It (Stakeholders)

To executives: This is not a product feature — it is a small reliability pattern for calling unreliable external services. The concept (retry with exponential backoff and jitter) is sound and worth standardizing. The specific package is not: it was last released in 2015, has negligible adoption, and comes from an unverifiable source. Recommendation: do not take a production dependency on it. Instead, standardize on Laravel's native retry helpers where available, and where not, adopt an in-house ~100-line utility modeled on this package's semantics. Cost is one engineering task, no license or procurement spend, and it removes an abandoned-dependency risk from our supply chain.

To engineering: Treat this as a design reference, not a dependency. If we adopt it, we vendor it, pin the version, add tests for PHP 8.x compatibility, and wrap it behind our own interface so it can be swapped. Default policy: retry only idempotent operations, filter exceptions explicitly (retry 5xx/timeouts/connection errors, never 4xx or validation failures), use jitter to avoid synchronized retries, cap total elapsed time, and emit a metric on exhaustion. Confirm which call sites are safe to retry before rollout — that is the real risk, not the library.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings