- Can I use this package in a Laravel project without Symfony Messenger?
- No, this package requires Symfony Messenger. You’ll need to integrate it via `spatie/laravel-messenger` or manually bridge Symfony Messenger to Laravel’s service container. It’s not a standalone Laravel queue driver.
- What Laravel versions does this package support?
- It works with Laravel 8+ (via Symfony Messenger compatibility). Ensure your project uses PHP 7.4+ and has `symfony/messenger` installed. Laravel 9+ should also work if Symfony Messenger dependencies are met.
- How do I configure the filesystem transport for Laravel?
- First, install `spatie/laravel-messenger` or manually bridge Symfony Messenger. Then configure the transport in `config/messenger.php` under `transports` with a `filesystem://` DSN and set a directory like `storage_path('app/messages')`.
- Is this transport suitable for production with high message volume?
- No, file I/O is slower than Redis or database queues. It’s best for low-volume tasks, development, or testing. For production, consider Redis or database transports for scalability and performance.
- How are failed messages handled?
- Failed messages are logged to a `failed.log` file by default. Unlike Redis/RabbitMQ, there’s no built-in retry mechanism. You’ll need to manually monitor and reprocess failed messages or implement custom logic.
- Can I use this alongside Laravel’s native queue system?
- Yes, but isolate them. Use Symfony Messenger (with this transport) for non-critical async tasks while keeping Laravel’s queue system (e.g., Redis) for core workflows. Avoid mixing transports for the same tasks to prevent conflicts.
- What are the performance implications of using filesystem storage?
- File I/O is slower than in-memory or broker-based transports. Under high load, latency may increase. Benchmark against alternatives like Redis or database queues if performance is critical.
- Does this package support distributed environments (e.g., Docker, cloud storage)?
- No, messages are stored locally on the filesystem. For shared storage (e.g., Docker volumes or cloud drives), performance may degrade further due to I/O bottlenecks. Use Redis or database transports for distributed setups.
- Are there plans to add retries or clustering support?
- Currently, the package is minimal and lacks retries or clustering. Check the GitHub repo for updates, but it’s unlikely to evolve into a production-grade solution. Contribute or fork if you need these features.
- What alternatives should I consider for Laravel async tasks?
- For lightweight needs, try `laravel-queue` with database or Redis drivers. For higher throughput, use Redis or RabbitMQ. If you need a hybrid approach, use this transport for dev/testing and Redis for production.