useless-soft/queries-bundle
A Symfony bundle for organizing database queries as reusable services. Define query classes, wire them through dependency injection, and keep complex read logic out of controllers and repositories. A simple, testable foundation for CQRS-style read models in Doctrine-backed applications.
HandleTrait, or (c) building a thin in-house dispatcher. The bundle's feature surface is small — which is exactly the kind of scope we could own in a sprint if the pattern proves worth it.Consider it only in a narrow band:
useless-soft/queries as the core query abstraction and want Symfony container integration rather than hand-wiring the bus and handler map.Look elsewhere — and default to elsewhere — when:
HandleTrait, middleware for logging/metrics, and sync transport covers most of this with a dependency we already run and patch.One line: The pattern is worth a look; the package is not — it's archived with essentially zero adoption and should be treated as a design reference, not a dependency.
For executives: This is a small Symfony integration package for a query-bus pattern (separating "read this data" requests from business logic). Adopting it would save us a few days of wiring at the cost of owning an unmaintained dependency indefinitely. My recommendation is to not adopt it; if we want the pattern, we implement it on Symfony Messenger, which we already run and patch.
For engineering: Read it as documentation of how a query bus maps onto Symfony's container — service definition, handler tagging, dispatch surface. If we want the pattern, we get ~90% of the value from a Messenger query bus plus a HandleTrait-based dispatcher, with middleware for logging and metrics thrown in. If a team wants to spike the original in a prototype, fine — pinned version, no production path, and a note in the risk register. Any production use requires a named owner and a fork we maintain.
Decision requested: No adoption. Approve the pattern as an option in the read-layer design discussion, and standardize on Symfony Messenger as the implementation vehicle if we go that way.
How can I help you explore Laravel packages today?