Capability Command Bus¶
Le CLI crée dès l'installation tous les fichiers et packages du blueprint complet de cette capability, avec des repères pour les développeurs et les IA. Les fichiers existants sont préservés lors d'une relance.
Bus de commandes applicatives use-case first.
Objectif¶
Le command bus transporte des commandes entre services ou processus. Il reste orienté use case: le message est validé, décodé, puis dispatché vers un handler applicatif.
Adapter¶
| Adapter | Usage |
|---|---|
rabbitmq |
worker et publisher RabbitMQ |
Commande¶
| Bash | |
|---|---|
Configuration Générée¶
Publier¶
| Python | |
|---|---|
Le publisher ajoute command_type, correlation_id et, si disponible,
traceparent.
Consommer¶
| Python | |
|---|---|
Le handler reçoit une CommandEnvelope, valide son payload, puis appelle un use
case. Il ne doit pas contenir de logique métier lourde.
Garanties¶
| Sujet | Comportement |
|---|---|
| Ack | ack() après dispatch réussi |
| Message invalide | nack(requeue=False) |
| Erreur handler | nack() selon retry_enabled et retry_requeue |
| Backpressure | prefetch et concurrency bornent le travail |
| Publication | publisher_confirms activé par défaut |
| Rejet durable | DLX configurable |
Règles¶
- Définir un
command_typestable et versionnable. - Toujours propager
correlation_id. - Garder les handlers idempotents quand la commande peut être rejouée.
- Ne pas requeue à l'infini sans DLX ni stratégie d'alerte.
- Ne pas exposer de secret dans les headers ou payloads.
Validation Bootstrap¶
| Bash | |
|---|---|
Validation Locale¶
| Bash | |
|---|---|
Un smoke complet doit publier une commande, vérifier le handler, puis inspecter ack/DLX selon le scénario.
Suite¶
Lire Deep Dive Bus, puis Command Bus RabbitMQ.