Choregraphie/Orchestration

Ce sont des implémentations sur patron SAGA

Chorégraphie (front controller pattern)

La chorégraphie utilise le même style de communication que l’architecture Event Driven. En d’autres termes, il n’existe pas de broker central dans cette architecture, nous travaillons au travers d’évènements.

Ainsi chaque service appel les services nécessaires à la demande. Le principal effet négatif est l’ajout de complexité au niveau du service.

choregraphie choregraphie

Orchestration

Une alternative consiste à avoir un médiateur local qui va englober la complexité et la coordination. Bien que ceci crée un couplage entre ces services, cela permet à l’architecte de concentrer la coordination sur un seul service, en laissant les autres moins affectés.

orchestration orchestration

Quoi choisir ?

La première loi de l’architecture logicielle1 suggère qu’aucune de ces solutions n’est parfaite et que chacune présente des compromis.
Le travail de l’architecte consiste à trouver le meilleur moyen de représenter ce couplage de manière à soutenir à la fois le domaine et les objectifs architecturaux.


  1. En Architecture Logicielle, tout est affaire de compromis (tradeoff↩︎