psamatt/service-bus-lite-bundle
Symfony bundle that wires the service-bus-lite library into your app, giving you a simple command and query bus with middleware support. Register handlers via tags, dispatch messages from controllers or services, and keep business logic decoupled from framework plumbing.
Architecture fit
The package is a Symfony bundle, not a Laravel package. There is no service provider, no facade, no Laravel container binding, and no config/*.php publication. Its integration contract is Symfony's bundle/DIC extension model (Bundle class, Extension, YAML/XML service definitions), which Laravel does not consume. Architecturally it implements the Service Bus pattern (command dispatch to handlers, handle() semantics), which conceptually maps onto Laravel's command bus / job dispatch, but the implementation is coupled to Symfony's event dispatcher and container. Fit with a Laravel codebase is effectively zero without an adapter.
Integration feasibility Low. To use this in Laravel a team would need to: replace the Symfony container with Laravel's, re-register the command/handler mappings manually, bridge the Symfony event dispatcher to Laravel's dispatcher (or bypass it), and reimplement bundle configuration as Laravel config. That is a rewrite of the package's integration layer, not an integration.
Technical risk
Very high. Signals: 4 stars, 0 dependents, a score of 0.02, and the Bundle suffix indicating a Symfony 2-era codebase (circa 2013–2014). Expect PHP 5.3–5.6 constraints, no PHP 8 compatibility, no return types, deprecated patterns, and unmaintained transitive dependencies. Security and CVE exposure is unmanaged. Bus/queue libraries also sit on the critical path for write operations — a failure here means lost commands, not degraded UI.
Key questions
Stack fit Mismatch. Recommend rejecting the bundle and treating it as a reference implementation only. For a Laravel codebase the idiomatic equivalents are:
dispatch(), Bus::dispatch, job classes with handle()) for command/handler separation.symfony/messenger (framework-agnostic, actively maintained) if a formal message bus with middleware, transports, and retries is required.league/tactician if a lightweight command bus with middleware is preferred and PHP 8 support is needed.Migration path
If a team is already on this bundle in a legacy Symfony app, the migration is bundle → Symfony Messenger (or → Laravel bus if moving to Laravel). Sequence: inventory commands and handlers, map command→handler bindings, replace dispatch() call sites behind a thin application-level interface, then swap the implementation underneath. The interface-first step is what makes the swap reversible.
Compatibility Assume no compatibility with current PHP or Laravel. Do not attempt to install it into a modern project to "see if it works"; the dependency resolution will either fail or drag in abandoned Symfony 2 components. Verify with a throwaway container if needed, but budget for failure.
Sequencing
CommandBus interface in the domain layer.Maintenance Effectively unmaintained. Zero dependents and four stars means no community pressure to fix bugs, no security response, and no upstream support. Any fork becomes internal IP with an owner, an on-call rotation, and a test suite — a real cost for a small library.
Support No vendor, no active maintainer engagement, no issue triage. Internal engineers become the de facto maintainers. Escalation path is "read the source."
Scaling The pattern itself scales (stateless dispatch); the package does not help with scaling. There is no first-class transport, retry, dead-letter, or backpressure story in a lite bundle — throughput is bounded by whatever synchronous handling you build. If volume matters, a real queue (SQS/Redis/SQS-compatible) with a maintained bus is required.
Failure modes
Ramp-up Low to learn the pattern (a day), high to own the code (weeks, including tests, wiring, and upgrade-proofing). New engineers will not find documentation or community answers; knowledge concentrates in whoever read the source.
Recommendation Do not adopt. Score it as a pattern reference. Use Laravel's native bus or Symfony Messenger behind an internal interface, and revisit only if a legacy Symfony 2 constraint makes a vendored fork unavoidable — in which case assign an explicit owner before writing a line of code.
How can I help you explore Laravel packages today?