Je travaille actuellement sur un projet où l'approvisionnement d'événements est utilisé. C'est ma première expérience avec ES donc parfois je ne sais pas si l'approche que j'utilise pour résoudre certains problèmes est correcte ou non.Source d'événements: approche correcte pour ignorer les événements
Considérez ce scénario: J'ai une interface utilisateur basée sur les tâches où chaque action produit une commande, qui crée un ou plusieurs événements.
À un certain point, l'utilisateur peut démarrer un processus, en disant qu'un événement appelé ProcessStarted
est généré. De là, il sera capable de faire des changements à l'agrégat, produisant ainsi d'autres événements.
Il peut continuer, ou, s'il le souhaite, il peut rétablir l'état de l'agrégat lors du dernier événement avant de démarrer le processus mentionné ci-dessus, à savoir qu'un événement appelé ProcessReverted
est généré.
Si le processus est restauré, il est possible d'effectuer davantage d'opérations sur l'agrégat, mais les événements ayant concouru dans le processus depuis les événements ProcessStarted
jusqu'aux événements ProcessReverted
ne doivent pas être pris en compte.
Par conséquent, lorsque l'agrégat est réhydratée Je veux:
- tous les événements depuis le début du temps à prendre en considération; Tous les événements du
ProcessStarted
aux événementsProcessReverted
à ignorer; - tous les événements après les événements
ProcessReverted
à prendre en considération.
Quelle est la meilleure approche pour atteindre mon objectif? Je ne peux pas penser à une solution qui serait élégante et appropriée dans un contexte ES. Je ne poste aucun code ici parce que je ne cherche pas de détails de mise en œuvre, mais je cherche une stratégie, j'espère obtenir des conseils de personnes avec plus d'expérience que moi et j'espère que ce serait aide-moi à mieux comprendre comment tirer parti de la puissance et de la flexibilité des SE.
J'ai fait exaclty comment vous avez suggéré. Cela semble être la solution la plus logique. Merci – user449689
@ user449689 vous êtes les bienvenus! –