- What is Thruway and what does it do?
- Thruway is a PHP implementation of the WAMP v2 protocol that ships both a client and a router (broker and dealer) built on Ratchet and ReactPHP. It gives PHP applications brokered pub/sub and routed RPC over WebSockets in one protocol, and interoperates with JavaScript, Python, and other WAMP clients such as AutobahnJS.
- Is voryx/thruway a Laravel package?
- No. Thruway is framework-agnostic and ships no Laravel service provider, config publishing, or facade. In a Laravel app you integrate it by hand: bind the ReactPHP event loop and a Thruway client as singletons in a provider, and run the router as a separate supervised process.
- How do I install Thruway with Composer?
- Install it with composer require voryx/thruway and confirm the dependency graph resolves against your supported PHP matrix before committing. There is no Laravel auto-discovery, so you also need to write the provider bindings and a long-running artisan command for the router yourself.
- Does Thruway support Laravel 10 or 11 and PHP 8.2/8.3?
- There is no official Laravel version support because it is not a Laravel package. The last release was 2022-02-18, so PHP 8.2/8.3 compatibility and ReactPHP v1.x pinning must be verified before adoption. Treat it as adopt-and-vendor rather than adopt-and-track.
- How do I run a Thruway router in production with Laravel?
- Run the Thruway router as a dedicated long-lived process under Supervisor or systemd, never inside an FPM worker. Laravel request paths should enqueue a job or use a short-lived client to publish, while separate workers subscribe to inbound topics and dispatch into Laravel's queue. Someone must own and be on-call for that router process in production.
- How does authentication work with Thruway and a Laravel guard?
- Thruway has pluggable authentication and session providers, so you can bridge Laravel's guard into WAMP's ticket or CRAC challenge-response flow. Channel-level and URI-level authorization, including tenant scoping, has to be authored from scratch. Plan for that work and for the unfamiliar WAMP surface of realms, sessions, roles, and URI namespacing.
- Can I use Thruway for real-time notifications instead of Laravel Reverb?
- Possibly, but it overlaps heavily with Laravel Reverb, Echo, Soketi, and Centrifugo, which are first-party or actively maintained. Thruway's real differentiator is RPC over WebSocket with caller/callee routing and progressive or cancellable results, which Echo does not model. If you only need fan-out notifications, Reverb is the better architectural fit.
- Does Thruway provide message durability or delivery guarantees?
- WAMP pub/sub is fire-and-forget, and Thruway provides no message durability or persistence. Delivery is best-effort, so if the business needs at-least-once guarantees you must layer a queue, outbox, or durable broker around it. Decide the actual delivery requirement before adopting.
- Can Thruway scale horizontally or cluster?
- Thruway's router is a single process with no built-in clustering story, so horizontal scaling is custom work you own. If you need multiple router nodes or high availability, evaluate a dedicated broker or a different real-time stack. Also note the router becomes internet-facing for browser WebSocket clients, so TLS, origin policy, and rate limiting are yours.
- Is Thruway still maintained, and what are the alternatives?
- Thruway's last release was in February 2022 and there are no signs of active stewardship, so assume you will fork and maintain it. For Laravel real-time work, compare Reverb, Soketi, and Centrifugo first. Thruway makes sense mainly when an existing WAMP peer such as Crossbar or AutobahnJS forces protocol alignment.