tourze/json-rpc-procedure-collect-bundle
A Symfony bundle that automatically discovers, collects, and registers JSON-RPC procedure handlers from your application, so you can organize and expose RPC methods without manual wiring or boilerplate configuration. Ideal for keeping your RPC API surface organized and discoverable.
Verdict: proceed with a timeboxed spike only. Do not commit to this package on the basis of the 0.0.2 release. The release notes for 0.0.2 contain no changelog, no PR references, and no description — only a diff link against 0.0.1. That means we cannot determine whether 0.0.2 is a safe patch, a silent behavioral change, or a breaking change on a package whose version number permits breaking changes by definition.
Architecture fit. First-order concern: the repository is named json-rpc-procedure-collect-bundle, and the -bundle suffix is the Symfony convention, not Laravel's. The vendor (tourze) publishes Symfony bundles. Before any architecture discussion, confirm whether this ships a Laravel service provider and illuminate/* constraints at all. If it is a Symfony DI bundle, the value proposition — auto-collecting JSON-RPC procedure handlers and registering them via container/attribute scanning — does not transfer directly, because Laravel has no compiler-pass/tagged-service equivalent. The concept is still worth borrowing: an annotation-driven registry that removes boilerplate from RPC method registration is genuinely useful in our stack. The package may not be the vehicle.
Integration feasibility. Unknown and currently unverifiable from the release artifact alone. A 0.0.2 bump tells us the package is alive but not mature. Required inspection before any decision: composer.json requirements, PHP version floor, autoload map, discovery mechanism (attributes vs. interface markers vs. directory scan vs. config list), and whether exposure is opt-in or opt-out.
Technical risk: high. Drivers:
Key questions.
composer.json require illuminate/* or symfony/*? Is there a Laravel service provider with package auto-discovery?Stack fit. Resolve the framework question first; everything downstream depends on it. Three outcomes:
Given the naming evidence, plan for (b) and be pleasantly surprised by (a).
Migration path. Greenfield — there is no incumbent collector to migrate from. The important move is containment: define our own ProcedureRegistry contract inside the application and make the package (or our hand-rolled replacement) one adapter behind it. That reduces a future swap at 0.1 or 1.0 to a single class.
Compatibility. Pin the exact version (0.0.2), not ^0.0.2 — the caret range still admits 0.0.3+, which may break. Verify the PHP constraint against our runtime images and confirm no transitive dependency conflicts before touching a production composer.json. Land it in a scratch app first.
Sequencing.
composer.json; stand up a throwaway JSON-RPC endpoint in a scratch Laravel app; verify discovery behavior and failure modes hands-on.Maintenance. The dominant cost and the strongest argument against adoption. Pre-1.0 with undocumented releases means every upgrade requires a manual diff review rather than a changelog read. Budget this as a recurring per-release cost, not a one-time integration cost — realistically a few hours per bump, indefinitely.
Support. No commercial backing, no SLA, GitHub issues only, and documentation likely authored primarily for a non-English ecosystem. Assume self-support: if we need a fix, we fork and patch, and we own that patch. That is an acceptable trade for a small utility, unacceptable for anything on a critical path.
Scaling. Low risk if the collector is a build-/boot-time concern (registration at container compile or app boot). Confirm that discovery does not perform filesystem or reflection scans per request. Note that this package almost certainly does not provide the JSON-RPC transport, batching, or HTTP layer — capacity planning belongs to whatever server component we pair with it.
Failure modes.
composer update. Mitigated by pinning and a lockfile review gate.Ramp-up. Two engineers, low-to-moderate: 2–4 days total including the spike, if the package is Symfony-coupled (DI tags and compiler-pass semantics are learnable but not free for a Laravel-only team). Closer to one day if native Laravel support is confirmed. The ongoing tax is upgrade-review discipline, not initial learning.
How can I help you explore Laravel packages today?