spiral/roadrunner-laravel
RoadRunner-powered application server for Laravel: replaces PHP-FPM with a high-performance Go worker, boosting throughput and cutting latency. Includes config publishing, Laravel integrations, and support for HTTP and queues via a simple composer install.
backoff, a maxTries fallback of 10, release() delays now converted to seconds, non-exception job failures, and non-object task payloads. These directly govern customer-visible behavior — retry cadence, time-to-first-retry, dead-lettering — so any product with SLA-bound async work (emails, webhooks, billing, exports) should treat this as a correctness dependency, not plumbing.increment/decrement matters wherever counters back a product surface: API rate limits, quota windows, feature usage meters, attempt counters. Silent TTL resets extend or collapse a window — a pricing/entitlement bug, not just a caching bug.Adopt / evaluate when:
dispatch(), release(), backoff, tries keep working, so migration is config-level rather than code-level.Look elsewhere when:
maxTries, and non-object payloads is evidence that edge cases are still being closed in 6.x — acceptable for most, disqualifying for teams that cannot absorb that class of surprise.For executives: This is a low-risk patch release (6.6.2) for the RoadRunner–Laravel bridge — no breaking changes, no deprecations, and it's mostly bug fixes plus a docs and static-analysis cleanup. The substance is that it closes several gaps where the RoadRunner worker didn't behave exactly like Laravel's built-in queue: retry delays, backoff schedules, max-attempt fallbacks, and failed-job handling now match native semantics, and cache counters no longer lose their expiry on increment/decrement. In plain terms, it fixes ways async work and rate limits could silently misbehave in production. It's safe to upgrade and a good moment to evaluate whether moving Laravel onto RoadRunner is worth the infrastructure savings at our traffic level.
For engineering: Patch release, seven fixes, all in the queue/cache/Temporal paths. Highest-impact items: release() delay is now converted to seconds in RoadRunnerJob (fixes #198 — a unit-mismatch bug with potentially large dispatch-delay drift); array WorkerOptions::$backoff is honored when releasing failed jobs (#197); null maxTries falls back to 10 rather than behaving ambiguously (#190); RoadRunnerJob handles failure without an exception (#200) and tolerates non-object task payloads (#191); cache increment/decrement preserve remaining TTL (#189 — relevant to locks, quotas, rate limiters); Temporal failed-activity exceptions are rethrown instead of swallowed (#193). Codebase now passes PHPStan at level max, so static analysis should be tightened on our side if we fork or extend. No migration steps expected — upgrade and run the queue/cache test suite; add regression coverage for delayed release() and TTL-bearing counters if we don't have it.
How can I help you explore Laravel packages today?