florianajir/rabbitmq-sql-bundle
A Symfony bundle that consumes messages from RabbitMQ queues and persists them into SQL databases, giving you a simple, configurable bridge between your message broker and relational storage.
Architecture fit — low. The package is a Symfony bundle (florianajir/rabbitmq-sql-bundle), not a Laravel package. There is no bundle registration mechanism in Laravel; the package's DI Extension, Configuration tree, and compiler passes will not auto-wire into a Laravel service container. The core value proposition — "SQL persistence with relationship support" — is implemented against Doctrine ORM metadata and entity mappings, which have no direct Eloquent equivalent. Porting the relationship logic is the expensive part, and it is precisely the part that does not survive the framework boundary. What is portable is the generic piece: a php-amqplib consumer loop that deserializes a message and writes a normalized graph into SQL tables.
Integration feasibility — low to moderate, with a fork. Composer constraints date from May 2016 (PHP 5.6/7.0-era, Symfony 2.7/3.0-era, contemporary Doctrine). Installing into a Laravel 10/11 app on PHP 8.2 will almost certainly fail dependency resolution; --ignore-platform-reqs is a trap, not a workaround. A viable integration requires forking and re-declaring constraints against PHP 8.x, modern php-amqplib, and the target DB driver — at which point the question becomes "why adopt the package at all" rather than "how do we install it."
Technical risk — high.
php-amqplib APIs) raise subtle runtime risk on PHP 8, particularly around null handling and exception signatures.Key questions to resolve before any commitment
Recommendation: treat this repository as a reference implementation, not a dependency. Score 0.01 is consistent with abandonment; adopting it transfers an unbounded maintenance liability for a few hundred lines of consumer orchestration.
Stack fit. In a Laravel context, the equivalent capability is composed, not installed:
vladimir-yuldashev/laravel-queue-rabbitmq) or direct php-amqplib inside a long-running artisan command.belongsTo/hasMany relations, wrapped in DB::transaction.ShouldQueue + failed_jobs, or an explicit dead-letter exchange if bypassing the Laravel queue abstraction.Migration path. Three options, in ascending cost:
Compatibility gaps to verify explicitly: PHP 8.2+, Laravel 10/11, MySQL 8 / Postgres 15/16, RabbitMQ 3.13 (quorum queues, publisher confirms). The 2016 client generation predates several of these; assume incompatibility until proven otherwise.
Sequencing.
Maintenance. A fork means permanent internal ownership: dependency patching, PHP major upgrades, and annual security review. Budget a recurring small-but-nonzero allocation (~5–10% of one engineer, plus a forced migration each time PHP or the DB driver majors). Upstream will not help.
Support. No vendor, no community, no documentation beyond a 2016 README. Any incident routes to an internal SME. That is single-point-of-failure knowledge — require a written runbook and a second trained engineer as a condition of go-live, or accept key-person risk.
Scaling. Throughput is bounded by three things the package does not manage for you: worker concurrency and prefetch (unbounded prefetch plus large messages causes memory blowup), relationship insert ordering under FK constraints, and SQL write contention as workers scale horizontally. Expect per-message transactions to be the throughput ceiling; batch inserts help but complicate failure semantics. Plan capacity testing at 2–3x forecast.
Failure modes to design against.
Ramp-up. Low discoverability, Symfony idioms in a Laravel shop, and no tests to read as documentation. Assume 2–3 days for a competent PHP engineer to understand the original design, and 1–2 weeks before they can safely modify the consumer. Factor this into the build estimate; it is the hidden cost that makes "just fork it" look cheaper than it is.
How can I help you explore Laravel packages today?