Symfony Messenger abstracts message buses and transports. Drop in Redis, RabbitMQ, Doctrine, or SQS without changing message handlers.
It is the right tool for retries, delayed dispatch, and dead-letter queues — exactly the patterns that previously needed bespoke worker code.
Use StampedEnvelope for cross-cutting concerns like priority, dispatch-after, and retry strategies without leaking them into business logic.