Skip to content
mummra.dev

Projects 2026

Laravel Azure Service Bus

A Laravel package to publish and consume messages from Azure Service Bus queues and topics over the REST API. Works as a queue driver, so existing jobs dispatch unchanged.

Azure Service Bus is the message broker most Azure-hosted Laravel applications end up needing, and the official SDK route is heavier than the job usually warrants. This package talks to the REST API directly and presents the result as an ordinary Laravel queue connection.

Using it as a queue driver

Once the connection is configured, nothing about your application code changes. dispatch(), Queue::push() and php artisan queue:work all behave as they do on any other driver, including retries and failed-job tracking.

Using the client directly

For the cases where a job is the wrong abstraction, AzureServiceBusClient sends and receives messages directly, and ServiceBusMessage builds the envelope:

AzureServiceBus::send(
    ServiceBusMessage::make(['order_id' => $order->id])
        ->withLabel('order.placed')
        ->withMessageId($order->uuid)
        ->withTimeToLive(3600)
        ->withScheduledEnqueueTime(now()->addMinutes(15))
);

Scheduled enqueue is the one that earns its keep — deferring a message at the broker rather than holding it in the application removes a whole class of "who owns this delay" question.

Configuration

Authentication takes either a full connection string:

AZURE_SERVICE_BUS_CONNECTION_STRING="Endpoint=sb://your-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=your-key="

or the parts separately — AZURE_SERVICE_BUS_NAMESPACE, AZURE_SERVICE_BUS_SAS_KEY_NAME and AZURE_SERVICE_BUS_SAS_KEY — with AZURE_SERVICE_BUS_TIMEOUT, AZURE_SERVICE_BUS_RETRIES and AZURE_SERVICE_BUS_RETRY_DELAY covering the transport behaviour.

Numbers

Measure Value
Composer package marmanik/laravel-azure-service-bus
Requires PHP 8.2+ · Laravel 11 or 12
Transport Service Bus REST API
Licence MIT