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

Broadway Bundle Laravel Package

macnificos/broadway-bundle

Symfony bundle for Broadway event sourcing that wires command and event buses, event stores, read models, and sagas into the container, reducing boilerplate when building CQRS and event-driven PHP applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor, with a fundamental mismatch. The package is a Symfony bundle, not a Laravel package. Its entire value proposition is Symfony-specific: a Bundle subclass consumed by Symfony\Kernel, DI extension classes that load YAML/XML service definitions, and auto-registration of Broadway console commands via FrameworkBundle. Laravel has no bundle concept — it uses Illuminate\Support\ServiceProvider and its own container, event dispatcher, and command registration. While Laravel shares individual Symfony components (HttpFoundation, Console, Process), it does not boot bundles. Consequently, zero percent of this package's code is executable in a Laravel application. The only reusable asset is the upstream broadway/broadway library it wires together, which can be adopted directly.

Integration feasibility — low for the package, moderate for the concept. To use Broadway under Laravel you would write a bespoke ServiceProvider reproducing what this bundle does: bind EventStore, EventBus, CommandBus, EventStream, serializer, and read-model repositories into the container, plus tag console commands. That is a day or two of work, and none of it can be lifted from this repository without translation from Symfony DI semantics. The bundle therefore adds a dependency without reducing integration effort.

Technical risk — high. Compounding signals:

Signal Observation Implication
Stars / dependents 0 / 0 No production validation, no community triage
Last release 2019-08-26 ~6 years stale; predates Symfony 5/6/7 and PHP 8
License MIT Permissive, so forking is legally viable
Scope Thin glue layer Little unique IP to salvage

The 2019 release implies PHP 7.x constraints and Symfony 3.4/4.x era DI configuration. Under PHP 8.1+ you should expect deprecation noise at best and hard constructor/type failures at worst; under modern Symfony the bundle would not compile at all. For a Laravel host, Composer may still resolve the package (Symfony bundles are ordinary libraries), producing a false sense that integration succeeded while nothing is wired.

Key questions for the requesting team:

  1. Is event sourcing / CQRS an actual domain requirement, or is this exploratory interest in the pattern?
  2. If required, why this bundle rather than broadway/broadway directly plus a first-party Laravel provider?
  3. Has the team evaluated actively maintained alternatives — spatie/laravel-event-sourcing, eventsauce/eventsauce, or patchlevel/event-sourcing — which ship Laravel-native or framework-agnostic integrations?
  4. What is the migration/exit cost if Broadway itself stalls further?
  5. Who owns the fork if we adopt?

Recommendation: reject. Do not introduce a zero-adoption, six-year-stale Symfony bundle into a Laravel codebase.

Integration Approach

Stack fit — not applicable as shipped. There is no supported path to install this bundle into Laravel and have it function. Any "integration" is effectively a reimplementation. If the underlying pattern is desired, the correct target is broadway/broadway directly, or a Laravel-native alternative.

Migration path. Three viable routes, in order of preference:

  1. Adopt a maintained alternative. spatie/laravel-event-sourcing (Laravel-first, active, Eloquent-backed projections) or patchlevel/event-sourcing (framework-agnostic, modern PHP). Lowest total cost, lowest risk, and a community to lean on.
  2. Use Broadway directly with a custom provider. Add broadway/broadway, write an EventSourcingServiceProvider binding the event store, buses, and serializers, register commands in Console\Kernel, and define config/event_sourcing.php for driver selection (Doctrine DBAL, MongoDB, or in-memory for tests). Budget ~3–5 engineer-days including a spike.
  3. Fork this bundle and port it. Only justified if the team specifically requires Broadway's exact API surface. Porting means rewriting DI extension classes as a service provider, dropping the bundle class, updating to PHP 8 and current Doctrine DBAL, and assuming full maintenance ownership. Not recommended at this maturity level.

Compatibility. Expect conflicts on PHP (^7.x constraints likely), Doctrine DBAL (broadway/event-store-dbal pins older majors), and Symfony components beyond v4. Laravel 10/11 ships Symfony 6/7 components; the transitive graph will likely require --ignore-platform-reqs or a Composer conflict resolution exercise — both red flags in a production dependency.

Sequencing (if proceeding via route 2):

  1. Spike: prove Broadway event store append/load against the target database in a throwaway Laravel app.
  2. Decide persistence driver and projection strategy; confirm read-model consistency model.
  3. Build the service provider and config; wire commands.
  4. Establish one bounded context end-to-end (one aggregate, one projector) before broad rollout.
  5. Retrofit observability and replay tooling prior to a second bounded context.

Operational Impact

Maintenance — unacceptable as a dependency. Zero maintainers, zero dependents, no issue triage for six years. Any defect is ours to fix, and upstream will not merge or release. The upstream broadway/broadway project itself has low activity, meaning even the correct integration carries long-horizon maintenance exposure. This is a "you are the maintainer now" decision that must be made explicitly and staffed.

Support — none. No documentation beyond the repository README, no community channel, no security response process. For a package touching persistence, serialization, and event replay — the parts of a system most expensive to get wrong — this is a material gap. Security posture is unknown: stale transitive dependencies are a supply-chain liability that will accumulate CVEs with no patch path.

Scaling. Broadway's model scales acceptably along the write path (append-only streams, optimistic concurrency) but the operational ceiling is set by projection rebuild time, event store growth, and snapshot strategy — none of which this bundle addresses. The bundle contributes nothing to scaling; it is pure wiring. Adopting it neither helps nor hinders throughput, which reinforces that it carries cost without benefit.

Failure modes to plan for regardless of route:

  • Projection drift — read models diverging from the event log; requires replay tooling and idempotent projectors from day one.
  • Serializer lock-in — event payload format changes break replay of historical events; version your events and treat the schema as a public contract.
  • Concurrency conflicts — optimistic locking exceptions on hot aggregates; needs retry policy at the command handler.
  • Unbounded stream growth — snapshotting must be designed in, not bolted on.
  • Silent non-wiring — the most likely failure with this bundle specifically: Composer installs it, Laravel ignores it, and developers assume events are being persisted when they are not. This failure mode is invisible until data loss is discovered.

Ramp-up. Event sourcing is a paradigm shift, not a library choice. Expect 2–4 weeks before a team is productive and considerably longer before it is reliable in production. Symfony-to-Laravel conceptual translation adds friction if anyone tries to follow this bundle's patterns or docs. Choosing a Laravel-native package substantially reduces both the conceptual and the mechanical ramp, and gives the team a maintained reference implementation to learn from.

Bottom line. The bundle is a stale, unused Symfony integration that cannot run on Laravel. Decline the dependency; if event sourcing is a genuine requirement, select a maintained Laravel-native library or integrate Broadway directly under first-party ownership.

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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib