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

Humus Amqp Laravel Package

prolic/humus-amqp

HumusAmqp is an asynchronous AMQP 0-9-1 client for PHP built on ReactPHP. It provides producers, consumers, and a fluent API for RabbitMQ messaging, enabling non-blocking publishing and consuming without blocking your event loop.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: prolic/humus-amqp is a standalone PHP AMQP library, not a Laravel queue driver. It fits when the product needs explicit RabbitMQ/AMQP control — exchanges, queues, bindings, producers, consumers, ack/retry semantics — and the team is prepared to own the Laravel integration layer. It does not fit as a drop-in replacement for Laravel’s native queue system or Horizon-style operations. The cleanest fit is producer-only publishing from Laravel plus separately run Humus consumers, or a custom Laravel Queue/Job adapter.

Integration feasibility: Feasible but not turnkey. A Laravel integration would require a service provider, configuration mapping, lifecycle management for long-running consumers, and probably custom Artisan commands. Producer-only integration is materially easier than full queue-driver integration. Full integration requires implementing Laravel queue contracts or explicitly bypassing them, which increases design and maintenance cost. MIT license is permissive, so legal friction is low.

Technical risk: High. The package is described as PHP 7.4-era, and PHP 7.4 is end-of-life; Laravel 9+ requires PHP 8+, so the package likely blocks modern Laravel unless forked or upgraded. Adoption is low — 76 stars, 0 dependents, last release September 2023 — so bus factor and community support are weak. There is no native Laravel support, no vendor backing, and a real likelihood of needing an internal fork for PHP 8+, security patches, and dependency maintenance. The low opportunity score reinforces that this is not a strategic default choice.

Key questions: Which Laravel and PHP versions must be supported? Can the platform move to PHP 8+? Is RabbitMQ/AMQP genuinely required, or would Redis/database queues meet the need? Do we need Laravel queue semantics, or only low-level publish/consume? Is ext-amqp available in production, or will we use a PHP driver? Who owns the fork, security patching, and AMQP runbooks? What are the ordering, delivery, retry, and throughput requirements? Is there an existing maintained Laravel RabbitMQ driver that already covers this need?

Integration Approach

Stack fit: Best treated as a low-level messaging library inside a Laravel application, not as the application’s default queue abstraction. If the product already standardizes on RabbitMQ and needs custom routing/topology, HumusAmqp can be a building block. If the goal is “Laravel jobs on RabbitMQ,” prefer a maintained Laravel queue driver or build a thin adapter over a healthier AMQP library. Producer-only use is the lowest-friction fit.

Migration path: Start with a bounded PoC in one service: bind a Humus producer in a Laravel service provider, publish messages after database commit using an outbox pattern, and run one Humus consumer as an Artisan command under Supervisor. Do not migrate core queues first. Dual-run the new AMQP path alongside the existing queue, compare delivery behavior, then cut over by feature flag. If full queue-driver behavior is required, implement and test the Laravel Queue contract before expanding scope.

Compatibility: Verify Composer constraints first. The PHP 7.4 description implies Laravel 8-or-earlier compatibility unless the package has been updated beyond its description; Laravel 9+ will likely require a fork or replacement. Confirm the AMQP driver (ext-amqp vs. PHP library), PHP extension availability, and compatibility with the deployment base image. Long-running Laravel workers and Humus consumers need explicit lifecycle handling for container restarts, deployments, and memory limits. Test against the exact Laravel container, queue config, and broker versions used in production.

Sequencing: 1) Validate Composer/PHP/Laravel compatibility. 2) Run a producer-only spike. 3) Prove consumer lifecycle, retries, and dead-letter handling. 4) Decide whether to fork for PHP 8+ or stop. 5) Implement Laravel adapter/service provider only if the spike succeeds. 6) Add observability, health checks, and runbooks. 7) Pilot one bounded context. 8) Roll out gradually and retain rollback to the existing queue.

Operational Impact

Maintenance: Expect internal ownership. Low upstream activity, PHP 7.4 EOL, and zero dependents mean the team should budget for dependency upgrades, security patching, and likely a PHP 8+ fork. Treat the fork as a product asset with an owner, changelog, and test suite, not as a temporary hack. Without that commitment, the package becomes a long-term support liability.

Support: Community support is thin. There is no vendor SLA, and documentation/examples are unlikely to match Laravel conventions. Support depends on internal AMQP expertise and the ability to debug broker-level behavior. Escalation paths should include RabbitMQ operations and PHP runtime owners, not just application developers.

Scaling: AMQP itself scales horizontally, but the integration must manage consumer prefetch, ack batching, connection churn, queue depth, and worker concurrency. Laravel long-running workers need memory and state hygiene. Plan for supervised consumers, per-queue concurrency limits, and backpressure. Producer scaling is simpler but still requires publisher confirms or an outbox if message loss is unacceptable.

Failure modes: Broker outage, network partitions, unacked-message redelivery, poison messages, duplicate delivery, consumer crashes mid-processing, queue backlog, misconfigured dead-letter exchanges, and deployment races are all realistic. The system needs idempotent consumers, retry policies with backoff, DLQs, health checks, and alerting on queue depth and consumer lag. Without publisher confirms and an outbox, “published but not committed” and “committed but not published” inconsistencies are likely.

Ramp-up: Laravel developers may understand jobs and queues but not AMQP topology, ack semantics, or Humus abstractions. Allocate a spike and a short enablement period for a senior PHP engineer plus ops support. Ramp-up should include AMQP fundamentals, the chosen driver, consumer lifecycle, failure injection, and runbook drills. A realistic first milestone is a narrow producer/consumer PoC with observable retries and DLQ behavior, not a platform-wide queue migration.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource