Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Rabbitmq Management Api Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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.

  • What are the exact PHP and Guzzle constraints, and does it install cleanly on our Laravel/PHP target?
  • Which Management API endpoints and response shapes does it actually model versus what our runbooks need?
  • Is the test suite meaningful, or is this untested HTTP glue?
  • Given the API is a stable, well-documented REST surface, is a 150–250 line internal client using Laravel's Http facade cheaper than adopting and owning this dependency?
  • Would a fork-and-republish under our org namespace be acceptable to the platform team?

Integration Approach

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:

  1. Internal thin client. Implement the handful of endpoints we actually need (queue stats, purge, vhost/queue create, binding list) against the Management API using Laravel's HTTP client. Roughly one to two engineer-days, no abandonware, full control of auth, retries, and timeouts.
  2. Fork and republish. Fork under our namespace, bump PHP/Guzzle constraints, add a service provider and config file, tag an internal release. Viable if the package's endpoint coverage and DTOs are genuinely better than what we'd write.
  3. Adopt as-is. Only defensible on a legacy PHP 7.4/Laravel 8 estate with no near-term upgrade.

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.

Operational Impact

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.

  • Management plugin disabled or not exposed on the network — client fails entirely; degrade gracefully, never let it break admin pages.
  • 401/403 from tag or vhost misconfiguration — most common first-run failure.
  • Broker overload from unpaced stats queries — self-inflicted, and the worst outcome because it affects message throughput.
  • Timeout hanging a PHP-FPM worker — enforce connect and read timeouts.
  • Silent schema drift on broker upgrade — mitigate with contract tests against a pinned broker image in CI.
  • Abandonware exposure — no CVE response; mitigate by vendoring or forking.

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route