roadrunner-php/laravel-bridge
Laravel Bridge for RoadRunner integrates the high-performance RoadRunner application server with Laravel. It bootstraps Laravel per worker and supports HTTP, queues, logging, metrics, and PSR-7 responses for faster, persistent-worker apps.
Assessment as of 6.6.2. This is a patch release focused on queue, cache, and Temporal correctness; no breaking changes are called out.
Minimal steps:
composer require roadrunner-php/laravel-bridge..rr.yaml; point server.command at the bridge worker entrypoint documented in the refreshed README.config/roadrunner.php; set queue/cache connections and worker options explicitly.rr serve and verify a simple Laravel route.Look first at:
config/roadrunner.php for worker, queue, cache, and Temporal settings..rr.yaml for RoadRunner server/worker configuration.RoadRunnerJob and WorkerOptions when debugging queue retry/backoff behavior.ShouldQueue. Prefer explicit $tries, $backoff, and $timeout on jobs instead of relying on worker defaults.release(). In 6.6.2 the bridge converts release delay to seconds correctly; remove any millisecond workaround if you added one.WorkerOptions::$backoff is an array, the bridge now honors it when releasing failed jobs. Use per-attempt backoff arrays for jobs with external dependencies.increment/decrement, so counters with expiry behave like other Laravel stores.WorkerOptions::$maxTries explicitly. If it is null, 6.6.2 falls back to 10 max tries.release() delay conversion to seconds. If you previously multiplied or divided delays to compensate, re-test and remove the workaround.null WorkerOptions::$maxTries now means 10. Set it deliberately to match your job policies; otherwise jobs may retry more than expected.RoadRunnerJob instances without an exception. Ensure your logging/monitoring still captures failed jobs, since there may be no exception object to inspect.RoadRunnerJob. Validate job payload shape in your job constructors rather than relying on the bridge to reject it.increment/decrement on keys with expiry after upgrading. The fix is important for rate limiters, counters, and locks that depend on TTL.rr serve -v), Laravel logs, php artisan queue:failed, and worker restart commands. Check config/roadrunner.php and .rr.yaml together when behavior differs between local and production.How can I help you explore Laravel packages today?