alazziaz / laravel-dapr-foundation
Foundation package for Laravel integration with Dapr Pub/Sub events.
Installs: 0
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/alazziaz/laravel-dapr-foundation
Requires
- php: ^8.2
- dapr/php-sdk: dev-main
- illuminate/console: ^10.0|^11.0|^12.0
- illuminate/events: ^10.0|^11.0|^12.0
- illuminate/http: ^10.0|^11.0|^12.0
- illuminate/routing: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
Requires (Dev)
- mockery/mockery: ^1.6
- nunomaduro/collision: ^7.0|^8.0
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- phpstan/phpstan: ^1.11
This package is not auto-updated.
Last update: 2025-10-28 17:00:46 UTC
README
Shared contracts, configuration, and service provider for bridging Laravel events with the Dapr Pub/Sub building block.
Installation
composer require alazziaz/laravel-dapr-foundation php artisan dapr-events:install
Features
GET /dapr/subscribeendpoint declared viaRoute::daprSubscriptions().- Topic resolution based on event class → dotted slug, with overrides via
#[Topic('custom.topic')]orconfig/dapr-events.php. - Queueable listener that republishes local Laravel events through the Dapr publisher (toggle with
publish_local_events). - Contracts for event payload serialization, topic resolution, and publisher bindings.
- Optional HMAC signature verification for inbound Dapr requests.
Configuration
Publish the configuration and adjust as needed:
return [ 'pubsub' => [ 'name' => env('DAPR_PUBSUB', 'pubsub'), ], 'topics' => [ // App\Events\OrderPlaced::class => 'orders.placed', ], 'http' => [ 'prefix' => 'dapr', 'verify_signature' => false, 'signature_header' => 'x-dapr-signature', ], 'serialization' => [ 'wrap_cloudevent' => true, ], 'publish_local_events' => true, ];
Artisan commands
dapr-events:install– publish config and listener stub.dapr-events:list– display discovered subscriptions and routes (supports--json).
Usage
Add the route macro (typically in routes/api.php):
use AlazziAz\DaprEvents\Support\RouteMacros; Route::daprSubscriptions();
With the publisher/listener packages installed, local Laravel events are automatically bridged to Dapr topics and inbound messages are re-dispatched as native events.