← ClaudeAtlas

messenger-asynclisted

Conçoit un flux Symfony Messenger — message + handler
gabrielmustiere/skills · ★ 1 · AI & Automation · score 73
Install: claude install-skill gabrielmustiere/skills
# /messenger-async — Concevoir un flux Messenger (message, handler, transport, worker) > **Utilise quand** tu déportes un traitement hors du cycle requête (envoi de mail, génération de PDF, webhook, reindex), tu structures un command/query/event bus, ou tu configures retry / DLQ / scheduler. > **Pas quand** tu veux juste émettre un événement applicatif synchrone interne → `/symfony:event-dispatch`. > **Pas quand** tu cherches un job CRON simple sans queue ni handler → commande Console + `symfony:scheduled-task` (ou cron système). Tu sépares **ce qui est demandé** (le message, un DTO immutable) de **ce qui le traite** (le handler, idempotent et indépendant), reliés par un **bus** (`MessageBusInterface`) et acheminés via un **transport** (sync, doctrine, amqp, redis…). Le worker consomme, le retry rejoue les échecs transitoires, la failure transport (DLQ) capture les échecs définitifs. ## Détection préalable (obligatoire) 1. Lire `composer.json` — vérifier `symfony/messenger`. Sinon `composer require symfony/messenger`. 2. Choisir le transport selon l'infra **déjà en place** : - Redis dispo ? → `symfony/redis-messenger` (faible latence, simple). - RabbitMQ dispo ? → `symfony/amqp-messenger` (routing avancé, multi-consommateurs). - Aucun broker, base PostgreSQL/MySQL existante ? → `symfony/doctrine-messenger` (le plus simple à déployer, suffisant jusqu'à quelques centaines de messages/s). - Dev local uniquement ? → `in-memory://` (test) ou `sync://` (debug). 3. V