Projects 2026
Laravel Azure Storage Queue
A Laravel queue driver backed by Azure Storage Queues, with transparent gzip compression for payloads that would otherwise exceed the 64 KiB message ceiling.
Storage Queues are the cheap option on Azure: no namespace to provision, no per-operation pricing surprise, and adequate for most background work. What they are not is generous about message size.
The 64 KiB problem
Azure caps a queue message at 64 KiB, and that ceiling applies after base64 encoding — so the real budget is smaller than it looks. A serialised Laravel job carrying a couple of Eloquent models will cross it more often than you would expect, and the failure arrives at dispatch time as an opaque rejection.
The driver compresses any payload that would breach the limit with gzip and marks it with a gz: prefix, decompressing on the way back out. Jobs that fit are left alone, so there is no cost for the common case.
Configuration
'azure' => [
'driver' => 'azure-storage-queue',
'account_name' => env('AZURE_STORAGE_ACCOUNT_NAME'),
'account_key' => env('AZURE_STORAGE_ACCOUNT_KEY'),
'endpoint' => env('AZURE_STORAGE_QUEUE_ENDPOINT'),
'queue' => env('AZURE_QUEUE_NAME', 'default'),
'timeout' => env('AZURE_QUEUE_TIMEOUT', 60),
],
The custom endpoint is there so the driver works against Azurite, the local storage emulator — worth having, because the alternative is a shared development storage account and the race conditions that come with it.
Limits worth knowing before you adopt it
- Maximum TTL is seven days, and
later()delays are capped at the same figure. - Ordering is best-effort FIFO across concurrent workers, not guaranteed. If you need strict ordering, Storage Queues are the wrong primitive and Service Bus sessions are the right one.
bulk()loops individualpush()calls, because the Storage Queue API has no native batch enqueue.
It is Horizon-compatible, so job monitoring works as usual.
Numbers
| Measure | Value |
|---|---|
| Composer package | marmanik/laravel-azure-storage-queue |
| Requires | PHP 8.2+ · Laravel 11 or 12 |
| Message size limit | 64 KiB (Azure hard limit) |
| Maximum TTL | 7 days |
| Licence | MIT |