michallkanak/symfony-message-flow-visualizer
Visualize Symfony Messenger message flow in your app: inspect dispatched messages, handlers, middleware and transport routing on a clear diagram. Debug async jobs, find bottlenecks and trace how each message travels through the bus in real time—without digging through logs.
Architecture fit: This is a Symfony bundle/console tooling package for visualizing message flow (Symfony Messenger–style dispatch → middleware → handler paths), not a Laravel package. It does not plug into Laravel's Illuminate\Bus/queue/event system, and Laravel has no bundle/DI-tag registration model, so "fit" for a Laravel codebase is indirect: it is only relevant where a Laravel app embeds Symfony Messenger or where the team operates Symfony services alongside Laravel and wants a shared diagnostic view of message topology. Treat it as developer tooling, not application architecture.
Integration feasibility: Feasible but requires deliberate scoping. Realistic paths are (a) a standalone Symfony console container that loads the message/handler definitions you want mapped, (b) a separate dev-only service in the local compose stack, or (c) an adapter layer that registers Laravel command/event classes as visualizer inputs. None of these is out-of-the-box; each costs a small, bounded piece of engineering. The 0.1.3 change (Symfony 8 compatibility) is additive and expands the supported platform, which slightly improves feasibility for greenfield Symfony 8 shops.
Technical risk: Primary risk is maturity, not technology: version 0.1.x signals pre-stable API, and the project has a single maintainer, so bus factor and long-term support are unproven. Secondary risk is constraint churn — a "Symfony 8 compatibility" PR can either widen the constraint (^6.4|^7|^8) or narrow it via a version bump, and narrow changes can silently conflict with the Symfony components Laravel already pulls in (Console, Finder, Process, VarDumper). Because it is dev-only, blast radius is limited to local/CI tooling and composer update resolution, not production runtime.
Key questions:
--dev without touching production autoload?Stack fit: Not a Laravel-native dependency. If the goal is message-flow visibility inside a Laravel-only estate, this package is a poor first choice compared to Laravel-native alternatives (Horizon, Telescope, custom event/job graph tooling). If the estate is mixed Laravel + Symfony, or Laravel plus a Symfony Messenger-based worker, the value proposition becomes credible as a cross-service diagramming tool.
Migration path: 0.1.2 → 0.1.3 should be treated as a routine patch, but verify by diffing composer.json constraints and reviewing the merged PR rather than trusting the changelog line. There is no data or schema migration; the only migration surface is the composer constraint set. If we adopt, pin to 0.1.3 exactly and only widen after a green CI matrix run.
Compatibility: Symfony 8 is newly released, so support for it implies an early-adopter posture on the upstream framework; expect rough edges. Confirm coexistence with our current Symfony component versions pulled transitively by Laravel, and confirm no hard requirement on symfony/framework-bundle in production autoload. Note that "supports Symfony 8" does not mean "supports Symfony 6.4 and 7.x" — the two are frequently traded off in small projects.
Sequencing:
composer.json constraint diff for 0.1.3 (one hour, owner: platform engineer).require-dev, point it at a representative service's message definitions, produce one diagram. Timebox to 2–3 days.Maintenance: Low absolute cost but non-zero ownership: someone must keep the constraint current as Symfony majors ship (this release is evidence of that treadmill). Pin exact versions in dev and treat upgrades as scheduled maintenance, not automatic.
Support: Single-maintainer project at 0.1.x — no vendor, no SLA, no guaranteed security response. Acceptable for a dev-only diagnostic; unacceptable as a load-bearing path. Internal documentation should assume we may need to fork or vendor the code.
Scaling: Diagrams grow poorly with graph size; expect noisy output for large handler graphs and a need to scope per bounded context or per message group. Compute cost is developer-machine only, so scaling is a usability question, not infrastructure.
Failure modes: (1) Composer resolution conflict blocking unrelated dependency updates in dev; (2) Symfony 8 support arriving while older supported versions regress; (3) bundle/service-tag wiring breaking on framework upgrades; (4) maintainer abandonment leaving an unpatchable dev tool; (5) teams mistaking a diagram for runtime truth — the visualization reflects static definitions, not what actually executed.
Ramp-up: Low for Symfony-fluent engineers (hours). Moderate for Laravel-only engineers, who must first understand Symfony DI tagging and the Messenger middleware pipeline before the output is interpretable. Budget a short knowledge-share rather than assuming self-serve adoption.
How can I help you explore Laravel packages today?