About symfony-messenger
A Symfony Messenger skill for designing asynchronous message handling, transport routing, and worker operations. It emphasizes safe redelivery, retries, and verifying configuration.
Key features
- 01Message and handler design
- 02Transport selection and routing
- 03Retry and failure transport setup
- 04Worker operation and limits
- 05Configuration checks and tests
Use cases
- 01Move slow work out of requests
- 02Route messages to async transports
- 03Make handlers safe for redelivery
- 04Verify worker and transport wiring
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill symfony-messengerAfter installing, type/symfony-messengerin Claude Code to confirm it loaded.
Bundled filesreference.md
Details
From the project READMESymfony Messenger (Symfony)
Use when
- Moving slow or failure-prone work out of the request into a message and an
#[AsMessageHandler]handler. - Choosing a transport (Doctrine, Redis, AMQP,
sync://,in-memory://) and routing messages to it. - Running, sizing, and restarting workers with
messenger:consume. - Making handlers safe under redelivery.
Default workflow
- Create the message as a plain
readonlyclass that carries IDs, never entities. - Write the handler with
#[AsMessageHandler]and a typed__invoke(): refetch by ID, skip work already done. - Route the message with
#[AsMessage('async')]or theroutingkey, and declare the transport DSN inmessenger.yaml. - Set
retry_strategyandfailure_transporton the transport. - Consume with
messenger:consume async -vv, bounded by--limit,--memory-limit, or--time-limit. - Check the wiring with
debug:messengerandmessenger:stats, and usein-memory://in tests.
Guardrails
- Pass entity IDs, never Doctrine entities: proxies and detached state do not serialize cleanly.
- Delivery is at-least-once: a redelivered message must return quietly, not throw.
PriorityStamp,--fetch-size,--no-reset, andstop_worker_on_signalsare marked 8.1+ in the reference: verify the minimum version first.- Restart workers on deploy with
messenger:stop-workers.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- The message, its handler, and the routing and transport configuration.
- The retry and failure transport settings.
- The worker command, and the
debug:messengerormessenger:statsoutput that proves the wiring.
References
reference.md
Comments
Markdown supported