--- title: "Configuration" description: "Configuration — point a Symfony Messenger transport at the BabelQueue serializer and map URNs to message classes." source: https://babelqueue.com/docs/symfony/1.x/configuration/ updated: 2026-06-07T00:00:00.000Z --- # Configuration Two pieces: point a Messenger transport at the BabelQueue serializer, and map inbound URNs to your message classes. ## Messenger transport Set the transport's `serializer` to `babelqueue.messenger.serializer`. Routing and retry stay exactly as Messenger defines them. ```yaml # config/packages/messenger.yaml framework: messenger: transports: babel: dsn: '%env(MESSENGER_TRANSPORT_DSN)%' # e.g. amqp:// or redis:// serializer: 'babelqueue.messenger.serializer' routing: 'App\Message\OrderCreated': babel buses: messenger.bus.default: middleware: # Forward trace_id from a handled message to any it dispatches, # so a chain of work stays in one trace. - 'babelqueue.messenger.trace_middleware' ``` ## URN ↔ message-class map To **consume**, the adapter needs to turn an inbound URN back into one of your message classes. Declare the mapping, plus the default `queue` written to the envelope's `meta.queue`: ```yaml # config/packages/babelqueue.yaml babelqueue: queue: 'orders' # written to the envelope meta.queue messages: # urn => message class (needed to consume) 'urn:babel:orders:created': 'App\Message\OrderCreated' ``` > Producing only needs the message to declare its own URN (see > [Producing messages](/docs/symfony/1.x/producing-messages/)); the registry is what > lets a consumer route an inbound envelope back to a class. ## The trace middleware `babelqueue.messenger.trace_middleware` (added to the bus above) attaches the inbound `trace_id` to the message as a `BabelTraceStamp` and ensures any message a handler dispatches **inherits** that `trace_id` — so end-to-end tracing needs no manual plumbing. It is optional but recommended. Next: [Producing messages](/docs/symfony/1.x/producing-messages/).