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

Messenger Mongo Bundle Laravel Package

emag-tech-labs/messenger-mongo-bundle

A Symfony Messenger transport that stores queued and failed messages in MongoDB. Install via Composer, configure DSN, database, collection, queue, and redeliver timeout, then use standard Messenger retry and failed-message commands.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping — "ship async work without new infrastructure." This transport lets an existing Symfony Messenger app use MongoDB as a queue. The PM decision it unblocks is whether to add Redis/RabbitMQ/SQS to the stack for a new async feature, or reuse a datastore the team already operates. If MongoDB is already in the architecture, this is a "no new vendor, no new on-call surface" option worth pricing against the alternative.
  • Roadmap sequencing of reliability work. A genuine use case the README calls out is persisting failed messages to MongoDB rather than standing up a separate failure store. That makes "do we invest in failure-handling tooling this quarter?" a smaller, cheaper bet — it can be scoped as configuration plus a small admin view rather than a platform project.
  • Build vs. buy (vs. build-small). A custom Messenger transport is a bounded, well-documented extension point — a few hundred lines of PHP. This MIT package sets the floor for that decision: adopt it, or fork it (license permits), rather than writing from zero. The build-vs-buy call becomes "adopt, fork, or hand-roll," and the honest answer depends on how much polling/latency tuning you need.
  • MVP and internal-tooling bets. Appropriate for prototypes, back-office jobs, batch/ETL-ish workloads, and low-volume event fan-out where operational simplicity beats throughput. Not a decision-support tool for high-volume, latency-sensitive pipelines.
  • Ecosystem fit is itself a decision. This is a Symfony Messenger bundle, not a Laravel queue driver. For a Laravel-first product, the decision it supports is a negative one: it does not drop into queue:work, so adopting it implies running Symfony Messenger components alongside Laravel — a real architectural commitment, not a Composer install. Treat "we're on Symfony Messenger" as a prerequisite, not a detail.

When to Consider This Package

Adopt-or-evaluate when all of these hold:

  • The application already runs Symfony Messenger and already operates MongoDB — the value proposition is entirely "reuse what you have."
  • Throughput is modest (internal jobs, low-hundreds of messages/second at most) and polling-based consumption latency is acceptable for the use case.
  • You need durable queued and/or failed messages more than you need peak throughput.
  • The team is comfortable pinning a version and potentially vendoring/forking the transport. With ~16 stars and 0 dependents, you are an early adopter, not a member of a crowd.
  • Signals in its favor for a small dependency: MIT license, active release cadence (latest release Jan 2026), CI, code coverage, and mutation-testing badges — i.e., the maintainer (eMAG Tech Labs, a large e-commerce engineering org) is testing it seriously, and the scope is narrow enough to audit.

Look elsewhere when:

  • You are on Laravel and expect a native queue driver. Laravel's queue system is separate; this will not integrate without running Messenger. Prefer Laravel's database/Redis/SQS drivers or a maintained MongoDB queue driver instead.
  • You need high throughput, strict at-least-once guarantees under load, or low-latency delivery. MongoDB-as-a-queue is explicitly a convenience trade-off, not a queueing system; Redis, RabbitMQ, or a managed broker are the right call.
  • You need operational maturity you don't have to own — dashboards, dead-letter tooling, replay, commercial support, or a vendor SLA. Zero dependents means limited field testing and a thin community for troubleshooting.
  • Nobody on the team knows MongoDB operations (indexing, TTL, replication, connection pooling). You'd be trading broker complexity for database complexity, not eliminating it.
  • You need message-level ordering or scheduling semantics that the transport doesn't document clearly — verify before committing a roadmap item to it.

How to Pitch It (Stakeholders)

One-line summary for executives: A small, MIT-licensed, actively tested open-source component that lets our Symfony services use MongoDB — a database we already run — as the queue for background work, avoiding a new messaging vendor and its operational cost.

The business case: every new broker we add is another thing to provision, secure, monitor, and staff for. This package converts an infrastructure decision into a configuration decision. For internal jobs, batch processing, and failure storage, it is likely sufficient, and it is cheap to reverse — MIT license, narrow scope, one config block, removable without a migration.

The engineering summary: it registers a MongoDB transport for Symfony Messenger; adoption is composer require plus transport configuration. It is CI-tested with coverage and mutation testing, published releases as recently as January 2026, and is maintained by a large e-commerce engineering organization. The code surface is small enough that our team can read all of it before shipping.

The risks to state plainly, not bury: ~16 stars and zero known dependents means effectively no third-party validation; we would be an early adopter. MongoDB is not a purpose-built queue, so throughput and delivery-latency characteristics must be benchmarked against our workload before it backs anything customer-facing. And it is a Symfony bundle — if the target service is Laravel, this is the wrong tool and we should say so now rather than discover it in implementation.

Recommendation to ask for: approve a time-boxed spike — one internal, non-customer-facing job, benchmarked, with the package version pinned and a written fallback to Redis/SQS. Success criterion: it handles our realistic peak volume with acceptable latency and a working failed-message path. If it doesn't, we've spent days, not a quarter, and we still own the decision.

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.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator