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

Symfony Laravel Package

babelqueue/symfony

A Symfony Messenger serializer that swaps the wire format for the canonical BabelQueue envelope, letting Symfony services exchange messages with Laravel, Go, Python, .NET and Node over one strict JSON format on your existing broker.

View on GitHub
Deep Wiki
Context7

Symfony Messenger adapter for BabelQueue — produce & consume language-neutral JSON envelopes Go, Python, Java, .NET & Node can read. Built on babelqueue/php-sdk.

Frequently asked questions about Symfony
How do I install and configure babelqueue/symfony in a Symfony app?
Run composer require babelqueue/symfony and, if you are not using Symfony Flex, register BabelQueue\Symfony\BabelQueueBundle in config/bundles.php. Then set serializer: 'babelqueue.messenger.serializer' on the Messenger transport you want to speak the BabelQueue envelope and add a config/packages/babelqueue.yaml file with your queue name and URN-to-class map. Your DSN, routing and handlers stay exactly as they are.
Does babelqueue/symfony work with Laravel's queue system?
No. This package is a Symfony Messenger serializer, and Laravel dispatches jobs through its own Queue and Job payload structure with its own worker loop, so Messenger's serializer is never in that path. Laravel applications interop with the same BabelQueue envelope by using the shared babelqueue/php-sdk core directly in a custom queue integration or a job-payload mapper. If you run Symfony services alongside Laravel consumers, this package handles the Symfony side of that contract.
Which brokers and Messenger transports does babelqueue/symfony support?
Any transport Symfony Messenger supports, including AMQP/RabbitMQ and Redis. The package only replaces the wire format produced and consumed on that transport; it does not add a transport, a broker, or a worker. That means you can adopt it on an existing broker without migrating infrastructure.
What PHP and Symfony versions does babelqueue/symfony require?
The package requires PHP ^8.2 and Symfony ^6.4 | ^7.0, with Messenger enabled. The repository ships a GitHub Actions CI workflow, so check the badge and workflow matrix for the exact PHP, Symfony and SDK versions exercised. Pin babelqueue/php-sdk deliberately in composer.json so SDK updates are reviewed rather than silently pulled in.
How do I map inbound URNs to message classes?
You declare a messages map under the babelqueue config key, pairing each URN with a PHP message class, for example 'urn:babel:orders:created' to App\Message\OrderCreated. Outbound publishing takes the class and writes the configured URN; consuming requires the map to resolve incoming envelopes back to a class. Because only mapped URNs can be deserialized, the map doubles as an allow-list against unintended class resolution.
Do my existing Messenger handlers, workers and retry policies keep working?
Yes. BabelQueue is a drop-in serializer, so handlers, middleware, workers, failure transports and retry configuration are untouched. Only the JSON written to and read from the transport changes. This is a single configuration seam, which also makes rollout and rollback straightforward.
How does trace_id propagation work across a chain of work?
Enable the babelqueue.messenger.trace_middleware middleware on your bus. It forwards the trace_id from a message being handled to any messages dispatched during that handling, so a chain of work stays under one trace. That makes it easier to correlate activity across Symfony, Laravel and other runtimes consuming the same queue.
How do I handle duplicate deliveries and idempotency?
BabelQueue supports idempotency keys so at-least-once redeliveries can be deduplicated instead of processed twice. Brokers such as RabbitMQ and Redis can redeliver a message after a worker crash or ack failure, so handlers should still be written defensively. Combine the package's idempotency support with your own storage check for anything with side effects.
How are Messenger stamps, delays, priorities and envelope versioning handled?
Messenger stamps and the BabelQueue envelope are different models, so mapping is not one-to-one and edge cases belong in your failure-path testing rather than happy-path testing. Verify delayed delivery, priority and redelivery semantics explicitly for each non-PHP consumer you exchange messages with. Ask the maintainers for the envelope version field and schema-evolution policy before relying on additive-only changes.
Is babelqueue/symfony production-ready, and are there alternatives?
The integration pattern is low risk and reversible, but the ecosystem signals are thin: one star, no dependents and a single-maintainer profile mean no independent production evidence yet. Treat the envelope as a de facto proprietary format until an independent conformance suite across the supported runtimes exists, and pin both this package and the SDK. For pure Laravel applications the pragmatic alternative is babelqueue/php-sdk inside a custom queue connector; for Symfony-only estates the built-in Messenger JSON serializer with custom normalizers is simpler.
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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style