Download the PHP package marmanik/laravel-azure-storage-queue without Composer
On this page you can find all versions of the php package marmanik/laravel-azure-storage-queue. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-azure-storage-queue
marmanik/laravel-azure-storage-queue
A Laravel queue driver backed by Azure Storage Queues, built on the microsoft/azure-storage-queue SDK.
- Laravel 11 & 12 · PHP 8.2+
- Zero SDK types leak past
AzureQueueClientAdapter— tests mock theAzureQueueClientinterface - Automatic gzip compression for payloads that exceed 64 KiB after base64 encoding
- Azurite (local emulator) supported via a custom endpoint
Installation
The service provider is auto-discovered via Laravel's package discovery.
Configuration
Add the connection to config/queue.php. No separate config file is needed.
Set the default connection if desired:
.env for production:
Creating the queue
Before dispatching jobs the queue must exist in Azure Storage. Use the bundled Artisan command:
The command is idempotent — running it against an existing queue is safe.
Usage
Dispatching jobs
Nothing changes from standard Laravel queue usage:
Running a worker
Laravel Horizon
This driver is compatible with Horizon. Add the azure connection to config/horizon.php under environments:
Note: Azure Storage Queues do not support priority ordering between queues at the storage level. Horizon's balancing works correctly but FIFO is best-effort across multiple workers.
Custom TTL per dispatch
Pass ttl (seconds) in the options array when using pushRaw directly:
Azurite local development
Azurite is the official Azure Storage emulator. The queue service runs on port 10001.
Start Azurite
.env for Azurite
Create the queue:
How message encoding works
| Payload size (after base64) | Storage format |
|---|---|
| ≤ 64 KiB | base64(payload) |
| > 64 KiB | gz: + base64(gzcompress(payload)) |
The gz: prefix is detected transparently on pop(). If the compressed payload still exceeds 64 KiB an AzureQueueException is thrown.
Architecture
Limitations
| Constraint | Detail |
|---|---|
| Message size | 64 KiB per message (Azure hard limit). Automatic gzip compression extends the effective limit. |
| Max TTL | 7 days (604 800 seconds). Azure rejects higher values. |
later() delay |
Also limited to 7 days (implemented as initial visibility timeout). |
| FIFO | Azure Storage Queues are best-effort FIFO. Strict ordering is not guaranteed under concurrent workers. |
| Batch operations | bulk() loops individual push() calls; no native batch API. |
Testing
Changelog
See CHANGELOG.md.
License
MIT — see LICENSE.md.
All versions of laravel-azure-storage-queue with dependencies
illuminate/contracts Version ^11.0|^12.0
illuminate/queue Version ^11.0|^12.0
illuminate/support Version ^11.0|^12.0
microsoft/azure-storage-queue Version ^1.3