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

Domain Events Bundle Laravel Package

andy-thorne/domain-events-bundle

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Event-Driven Architecture (EDA) Adoption: Enables seamless integration of domain events into a Symfony/Laravel application, supporting decoupled services, microservices, or real-time notifications.
  • Decoupling Business Logic: Facilitates separation of concerns by allowing domain events to trigger side effects (e.g., notifications, analytics, or workflows) without tightly coupling them to the core domain logic.
  • Roadmap for Scalability: Ideal for projects planning to scale horizontally or adopt CQRS/Event Sourcing patterns, as domain events can be persisted and replayed independently.
  • Build vs. Buy: A lightweight, open-source alternative to commercial event-driven frameworks (e.g., EventStoreDB, Axon Framework), reducing licensing costs while maintaining flexibility.
  • Use Cases:
    • Audit Logging: Automatically log changes to entities (e.g., user updates, order status changes).
    • Real-Time Updates: Push notifications or UI updates via WebSockets when domain events occur.
    • Workflow Automation: Trigger downstream processes (e.g., inventory updates, payment processing) in response to domain events.
    • Data Synchronization: Sync data across services or databases asynchronously.

When to Consider This Package

  • Adopt When:

    • Your application uses Symfony/Laravel with Doctrine ORM/ODM and requires event-driven workflows.
    • You need asynchronous processing of domain events (e.g., to avoid blocking requests or for background jobs).
    • Your team is already familiar with Symfony Messenger or willing to adopt it for event handling.
    • You want to avoid reinventing event dispatching logic and prefer a battle-tested, configurable solution.
    • Your project aligns with Domain-Driven Design (DDD) principles and leverages aggregates/entities.
  • Look Elsewhere When:

    • You’re not using Symfony/Laravel or Doctrine (this package is tightly coupled to these ecosystems).
    • You need event sourcing (this package focuses on event dispatching, not storage/replay).
    • Your team lacks experience with asynchronous messaging or Symfony Messenger (steep learning curve for setup).
    • You require high-throughput event streaming (consider Kafka, RabbitMQ, or dedicated event platforms).
    • The package’s lack of maintenance (archived since 2022) is a concern—evaluate risk tolerance for unpatched dependencies.
    • You need real-time event processing (e.g., WebSocket push) without additional infrastructure (this package relies on Messenger transports).

How to Pitch It (Stakeholders)

For Executives:

"This package lets us implement event-driven architecture in our Symfony/Laravel app with minimal overhead. By decoupling business logic from side effects (like notifications or analytics), we can scale features independently, reduce technical debt, and future-proof the system for microservices. It’s a lightweight, open-source solution that aligns with our DDD goals and avoids vendor lock-in. The upfront cost is low—just configuration and Messenger setup—with high ROI for complex workflows like order processing or user onboarding."

For Engineering:

*"This bundle integrates domain events into Doctrine via Symfony Messenger, giving us a clean way to dispatch events asynchronously during postFlush. Key benefits:

  • No reinvention: Leverages Messenger’s transports (e.g., AMQP, Redis) for reliable async processing.
  • Flexibility: Route events to handlers or dead-letter queues as needed.
  • DDD-friendly: Events are first-class citizens in your domain model. Trade-offs: The package is archived (last release 2022), so we’d need to vet dependencies and consider forking if critical bugs arise. Setup requires familiarity with Messenger, but the payoff is worth it for event-heavy workflows."*
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.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle