Je suis la conception d'une application CQRS en utilisant DDD, et je me demande comment mettre en œuvre le scénario suivant:Comment utiliser les sagas dans une architecture CQRS utilisant DDD?
- un agrégat
Participant
peut être référencé par plusieursParticipantEntry
agrégats - un
AddParticipantInfoCommand
est émis sur le côté de commande, qui contient toutes les informations duParticipant
et unParticipantEntry
(semblable à unOrder
et unOrderLineItem
)
Lorsque la logique devrait être mis en œuvre que ch Vérifie si le Participant existe déjà et s'il n'existe pas, crée le Participant?
- Au cas où il se fait dans une saga qui vérifie d'abord le modèle de domaine pour l'existence du
Participant
, et si elle ne trouve pas, émet unAddParticipantCommand
et après une commandeAddParticipantEntry
contenant leParticipant ID
? - Est-ce que cela devrait être fait entièrement par les agrégateroots dans le modèle de domaine lui-même?
« un agrégat de participants peut être associé à plusieurs agrégats ParticipantEntry » - Que voulez-vous dire? –
Comment sont-ils associés? Par ID? Que représente cette "association"? –
Que se passe-t-il si un participant en double est ajouté pour une courte période de temps? Quel est l'impact sur l'entreprise? Il est acceptable qu'un humain réessaye ou annule la commande? –