Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Doctrine Bus Message Bundle Laravel Package

draw/doctrine-bus-message-bundle

Symfony bundle that integrates Doctrine with the Messenger/command bus pattern, making it easy to dispatch bus messages from Doctrine entities and listeners. Helps coordinate persistence and message handling with clean separation of concerns.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Event-Driven Architecture (EDA) in Laravel: While this package is Symfony-focused, it validates the business case for EDA in Laravel by demonstrating how Doctrine lifecycle events can trigger asynchronous workflows. This justifies investing in Laravel-native alternatives (e.g., Eloquent events + queues) or third-party packages like spatie/laravel-event-sourcing.
  • Decoupled Notifications/Integrations: Enables build vs. buy decisions for features like:
    • Real-time notifications (e.g., Twilio, Mailgun) triggered by model events.
    • Third-party syncs (e.g., CRM, ERP) without blocking HTTP requests.
  • Performance Optimization: Supports roadmap items to offload synchronous tasks (e.g., sending emails, logging) to background workers, improving API response times.
  • Scalability for High-Volume Actions: Aligns with plans to handle bulk operations (e.g., user imports, batch updates) by queuing side effects instead of processing them inline.
  • Use Cases:
    • User Onboarding: Dispatch UserRegisteredMessage to trigger welcome emails, analytics, and fraud checks asynchronously.
    • E-Commerce: Queue OrderPaidMessage to update inventory, send receipts, and log transactions without delaying checkout.
    • Audit Trails: Capture EntityUpdatedMessage for compliance or rollback capabilities.

When to Consider This Package

  • Adopt When:

    • You’re already using Symfony Messenger in a Laravel app (e.g., via API Platform or a hybrid stack) and need Doctrine event integration.
    • Your team is familiar with Symfony bundles and prefers them over Laravel-specific solutions for consistency.
    • You require advanced message routing (e.g., conditional dispatching based on entity state) that Laravel’s native queues lack.
    • You’re evaluating Symfony for a microservice but need to prototype event-driven workflows in a Laravel monolith first.
  • Look Elsewhere If:

    • You’re fully Laravel-based without Symfony dependencies (use Laravel Events + Queues or spatie/laravel-activitylog).
    • You need real-time processing (e.g., WebSockets for live updates) instead of async messaging.
    • Your app uses Eloquent or another ORM (consider Laravel Observers or Model Events).
    • The maintenance risk of a low-starred, undocumented package outweighs the benefits (prioritize Laravel’s built-in queues or spatie/laravel-queue-scheduler).
    • You lack Symfony expertise on the team (steep learning curve for Messenger’s abstractions).

How to Pitch It (Stakeholders)

For Executives: "This package lets us automate background tasks—like sending emails or syncing data—whenever database records change, without slowing down user requests. For example, when a customer completes a purchase, we can instantly queue a receipt email, fraud check, and inventory update all at once, without making the checkout process slower. It’s a plug-and-play way to adopt event-driven architecture, reducing technical debt and improving scalability for features like real-time notifications or third-party integrations. While it’s designed for Symfony, we can adapt its core logic to Laravel with minimal effort, keeping us aligned with our tech stack. The risk is low since we’re not locked into Symfony long-term."

For Engineers: *"This bundle ties Doctrine’s entity lifecycle events (e.g., postPersist) directly to Symfony Messenger, which is a powerful pattern—but it’s overkill for pure Laravel apps. Here’s the tradeoff:

  • Pros:
    • Clean event-to-message dispatching: No manual bus calls in entity listeners.
    • Symfony Messenger features: Retries, dead-letter queues, and transport flexibility (AMQP, Redis).
    • Proven for Doctrine: Works seamlessly with ORM lifecycle events.
  • Cons:
    • Symfony dependency: Adds bundle complexity and potential conflicts.
    • Laravel mismatch: We’d need to abstract or replace core parts (e.g., use Laravel Queues instead of Messenger).
    • Undocumented: Low stars mean higher maintenance risk; we’d need to test edge cases (e.g., transaction rollbacks).

Recommendation: Use this as a reference architecture to build a Laravel-native solution (e.g., Eloquent Observers + Queues). If we’re already using Symfony components, it’s a drop-in win. Otherwise, we can replicate 80% of its value with built-in tools in a fraction of the time."*

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours