Weave 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 Event Laravel Package

gpslab/domain-event

A lightweight, framework-agnostic PHP domain event library. It provides an event bus, listener and subscriber registration, event-to-listener mapping, and deferred event dispatch to help decouple domain logic.

Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: The package is intended as framework-agnostic DDD domain-event plumbing. It can fit a hexagonal/clean architecture where the domain must not depend on Laravel’s Illuminate\Events\Dispatcher. However, Laravel already provides a mature event/listener/queue system, so this package is only justified if the team explicitly wants domain-layer event contracts and a bus abstraction independent of Laravel. The fit is narrow, not platform-wide.
  • Integration feasibility: Likely installable via Composer and usable with a custom Laravel service provider/adapter. There is no evidence of first-party Laravel integration, so the team must bridge the package’s event bus/contracts to Laravel’s dispatcher, queue, and transaction lifecycle. Feasibility depends on whether its PHP constraints support the target Laravel/PHP matrix.
  • Technical risk: High. The package has 18 stars, a score of 0.15, an unknown repository, and no release since 2019-08-06. Treat it as effectively unmaintained. Risks include PHP 8.x incompatibility, missing Laravel 10/11 support, unclear event-dispatch semantics, limited tests/docs, and no security-response process. MIT licensing allows a fork, but that transfers ownership cost internally.
  • Key questions: Does it run on the target PHP/Laravel versions? What does it provide beyond Laravel events? Is dispatch synchronous or queued? Does it support transaction-safe publication, ordering, retries, and idempotency? Are domain events recorded on aggregates or only dispatched manually? Is the repository available for code audit? What is the test coverage and SemVer history? Can we wrap it behind an internal interface and replace it later?

Integration Approach

  • Stack fit: Use the package only as a thin domain-event contract/bus abstraction, not as the application’s primary event infrastructure. Keep domain events framework-agnostic; implement a Laravel adapter that maps them to Laravel events, listeners, and queues. Do not let Laravel dispatcher types leak into domain code.
  • Migration path: Pilot in one bounded context. Vendor or fork the package into an internal namespace if the spike succeeds. Build an internal DomainEventBus port and a Laravel adapter. Dispatch events after the database transaction commits, or use an outbox if reliability matters. Avoid a platform-wide migration before proving compatibility and semantics.
  • Compatibility: Pin the exact version and test against the supported PHP/Laravel matrix in CI. If Composer constraints block modern PHP or Laravel, fork and patch rather than relying on upstream. Compare against Laravel’s native dispatcher and, if needed, Symfony Messenger/EventDispatcher before committing.
  • Sequencing: 1) Audit source, tests, and Composer constraints. 2) Run a compatibility spike on the target Laravel version. 3) Define internal domain-event interfaces and adapter boundaries. 4) Integrate one bounded context with transaction-safe dispatch. 5) Add contract tests for sync/async behavior and failure handling. 6) Document an exit strategy. 7) Decide adopt, fork, or replace.

Operational Impact

  • Maintenance: Effectively unmaintained. Budget internal ownership for PHP upgrades, Laravel compatibility patches, bug fixes, and security review. Do not assume upstream releases. The MIT license permits a fork, but the TPM must secure engineering ownership and a maintenance plan.
  • Support: Community support is minimal given low stars and an unknown repository. Internal documentation and escalation paths are required. Maintainers are unlikely to provide timely fixes. Treat the package as internal code after adoption.
  • Scaling: In-process synchronous dispatch is likely the default; scale via Laravel queues only through an adapter. Reliability at scale requires idempotent listeners, retries, dead-letter handling, ordering decisions, and preferably an outbox. The package alone should not be expected to provide distributed-event infrastructure.
  • Failure modes: Lost events when dispatch occurs before commit; duplicate delivery after retries; listener exceptions breaking requests if synchronous; queue backlog and poison messages; PHP/Laravel incompatibility; event contract drift; hidden coupling between domain and application listeners; abandonment of the package.
  • Ramp-up: The API surface is probably small, but engineers must understand the distinction between domain events and Laravel events, transaction boundaries, adapter ownership, and async failure semantics. Allow a short spike for senior engineers and a one-to-two-week pilot before broader onboarding.
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.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk