http-client-asynclisted
Install: claude install-skill gabrielmustiere/skills
# /http-client-async — Concurrence, retry, cache, rate limit, SSE
> **Utilise quand** tu lances plusieurs requêtes en parallèle, ajoutes retry/cache/rate-limit, ou consommes du SSE.
> **Pas quand** une seule requête séquentielle → `/symfony:http-client-request`.
> **Pas quand** tu cherches comment lire la réponse → `/symfony:http-client-response`.
Tu orchestres plusieurs requêtes HTTP sortantes en parallèle, tu ajoutes retry / cache / throttling sans polluer le code métier (via decorators), ou tu consommes un flux Server-Sent Events. Tu ne boucles jamais `request()` + `getContent()` séquentiellement quand N appels indépendants peuvent partir en parallèle.
## Détection préalable (obligatoire)
1. Lire `composer.json` et vérifier `symfony/http-client`. Absent → `/symfony:http-client-request`.
2. Pour le retry / le cache / le rate limit : les paquets sont optionnels.
- Retry : inclus dans `symfony/http-client`. Rien à installer.
- Cache HTTP : `composer require symfony/cache` (si pas déjà là).
- Rate limiter : `composer require symfony/rate-limiter`.
- SSE : inclus dans `symfony/http-client`.
3. Vérifier l'extension cURL. Sans cURL, le multiplexing fonctionne mais pas HTTP/2 : la concurrence est émulée via `NativeHttpClient`, les perfs sont moindres. Le signaler.
## Règles fondamentales
- **Pattern fan-out / fan-in** : envoyer toutes les `request()` d'abord (retour immédiat), consommer ensuite via `stream()`. Boucler `request(); getContent()` séquentiellement sé