markup/rabbitmq-management-api
A Laravel/PHP client for the RabbitMQ Management HTTP API. Inspect queues, exchanges, bindings, connections and node statistics, publish messages, and manage vhosts and policies through a clean, fluent wrapper. Ideal for dashboards and admin panels.
Architecture fit. This is a management-plane client, not a messaging library. It wraps the RabbitMQ Management HTTP API (queues, exchanges, bindings, vhosts, connections, nodes, users/permissions) and does not publish or consume messages. That makes it relevant only to operational surfaces: admin dashboards, queue-depth and consumer-count telemetry, dead-letter and purge tooling, and automated vhost/queue provisioning. It is architecturally wrong for anything on the message path — that stays with php-amqplib or a Laravel queue driver. The fit is therefore narrow but real: teams running RabbitMQ behind Laravel usually have a gap exactly here, because the AMQP drivers expose almost no introspection.
Integration feasibility. The package is framework-agnostic PHP with no Laravel service provider, facade, config publishing, or IoC bindings. Integration is manual: a singleton binding, a config array for host/port/credentials/vhost, and a thin facade if the team wants one. That is maybe half a day of glue. The blocker is dependency resolution, not effort: a 2019 release almost certainly pins Guzzle 6.x and PHP 7.x, which conflicts with Laravel 9+ (Guzzle 7) and will fail composer update on modern stacks. Verify the composer.json constraints and run composer why-not before committing to a spike.
Technical risk. High, and concentrated in provenance rather than code quality. Two stars, zero dependents, no release since March 2019, and no visible maintainer activity means no security response path, no PHP 8 compatibility work, and no coverage of Management API endpoints added since. A REST wrapper is low-complexity code, so the functional risk is modest; the supply-chain and abandonment risk is what dominates. MIT licensing removes legal friction but also means no commercial support exists to buy.
Key questions.
Http facade cheaper than adopting and owning this dependency?Stack fit. Best treated as a dev/ops-tooling dependency, not a product dependency. It should live behind an internal interface (e.g., RabbitAdminClient) that our application code calls, so the underlying package is swappable without touching callers. If the target stack is Laravel 10+/PHP 8.2, assume it will not install unmodified.
Migration path. Three options, in order of preference:
This package's source is a useful reference implementation and coverage checklist for option 1 regardless of which path is chosen.
Compatibility. Two independent axes. The RabbitMQ Management API itself evolves additively and is low-risk across broker versions. The PHP/Guzzle constraints are the real compatibility boundary and the likely cause of any failed install.
Sequencing. (a) Timeboxed spike — install, authenticate against a non-production broker, confirm three or four target endpoints. (b) Decide adopt/fork/build and record it as an ADR. (c) Define the internal interface and land the adapter. (d) Wire into admin tooling and scheduled health checks only. Do not put it on the request hot path in phase one.
Maintenance. Effectively zero upstream, so assume full ownership from day one. Budget one to two engineer-days per quarter for dependency and broker-version drift, plus unplanned work whenever the RabbitMQ Management API changes a response shape. If adopted as-is, the package is a liability that only shrinks if it is forked or replaced.
Support. Community-only in name; in practice, internal. Documentation is thin and there is no issue-triage expectation on a repository with this activity level. The team must be able to read the Management API docs directly.
Scaling. The Management API is a management-plane service running inside the broker and stats endpoints are comparatively expensive. Naive per-request polling from PHP-FPM workers will degrade broker responsiveness under load. Mitigations: a dedicated RabbitMQ user with the monitoring tag scoped to read-only, aggressive caching (30–60s TTL) on stats, scheduled collection into our own metrics store rather than on-demand calls, and hard timeouts on every request.
Failure modes.
Ramp-up. A PHP developer can be productive with it in under a day; the API is conventional REST. The real ramp is RabbitMQ domain literacy — vhosts, tags, consumer counts, unacked vs ready messages — which the package does not supply. That knowledge is the actual cost, and it is sunk regardless of whether we adopt this package, fork it, or write our own client.
Recommendation. Do not take a hard product dependency on this package. Use it as a reference and spec for a small internal client behind a swappable interface, scoped to admin tooling and scheduled telemetry. Revisit adoption only if a maintained fork with PHP 8 support and passing contract tests appears.
How can I help you explore Laravel packages today?