danielkorytek/messenger-bridge-bundle
laravel-messenger or spatie/laravel-messenger) if adapted via a bridge layer.Symfony\Component\Messenger), requiring a bridge layer (e.g., symfony/messenger + spatie/laravel-messenger) or a custom adapter for Laravel. Feasibility hinges on:
Illuminate\Bus\Dispatcher compatibility with Symfony’s MessageBusInterface.SerializerInterface).RoutingKeyMiddleware is modular and could be ported to Laravel as a queue listener middleware or bus event subscriber, but requires rewriting resolver interfaces (RoutingKeyResolverInterface).Illuminate\Contracts\Bus\Queueable).RoutingKeyMiddleware adds dynamic routing (e.g., locale prefixes), which may conflict with Laravel’s static queue naming conventions.queue:listen --queue=* with dynamic queue names)?spatie/laravel-queue-monitor or custom Illuminate\Bus\PendingDispatch logic achieve similar routing without Symfony dependencies?symfony/messenger as a microservice alongside Laravel (e.g., via gRPC/HTTP), with Laravel queues delegating to it.RoutingKeyResolverInterface into a Laravel service provider).Illuminate\Bus\QueueableInterface + resolveQueue().Illuminate\Queue\Events\JobProcessing listeners.resolveQueue() handle locale prefixes?).RoutingKeyMiddleware).Illuminate\Queue\Worker to support dynamic routing.DocplannerMessage trait for serialization/deserialization.symfony/http-client).symfony/messenger:^6.0 with Laravel’s dependency management.JMS\Serializer or symfony/serializer). Laravel’s default JSON serialization must be explicitly aligned.Illuminate\Queue\Events\JobProcessed).RoutingKeyMiddleware and resolvers require ongoing maintenance if Docplanner’s standard evolves.queue:work and Symfony’s messenger:consume may need parallel monitoring if using a hybrid approach.monolog integration) for middleware execution.queue:failed-table + Symfony’s messenger:failed-messages for visibility.queue:failed table for oversized messages.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Malformed routing key | Message lost or misrouted | Validate keys in middleware; retry with dead-letter queue. |
| Serialization mismatch | Message corruption | Use a shared serializer (e.g., JMS\Serializer) across Laravel/Symfony. |
| Symfony ↔ Laravel bridge failure | Messages stalled | Implement circuit breakers; log bridge failures. |
| Docplanner standard changes | Breaking changes | Subscribe to Docplanner’s API updates; test early. |
| Worker process crash | Message loss | Use Laravel’s queue:retry + Symfony’s retry_strategy. |
README.laravel.md in your repo.How can I help you explore Laravel packages today?