TP5 - S’abonner à un événement-cuisine à partir d’un agrégat et créer une vue CQRS

1. Résumé

Lorsque vous utilisez Event Sourcing, il n’est en réalité possible d’interroger un agrégat qu’à l’aide de sa clé primaire. Évidemment, nous souhaitons souvent exécuter différentes requêtes. Nous pouvons nous abonner aux événements publiés par un agrégat et créer des index ou des magasins de données alternatifs pour prendre en charge ces requêtes.

Dans ce TP, nous allons rester simples et créer deux index alternatifs. Ceux-ci seront utilisés par les méthodes du service d’application que nous implémenterons dans le TP6.

Nous réaliserons deux scenarios :

  1. Nous prendrons en charge la recherche d’une commande CommandeCuisine à l’aide de sa référence ReferenceCommandeEnLigne

  2. Nous prendrons en charge la recherche d’un ensemble Set<Pizza> à l’aide de leur référence ReferenceCommandeCuisine associée

Vous pouvez exécuter com.pizzeria.suites.Lab5Suite pour vérifier votre progression dans ce TP.

2. Instructions.

  1. Terminez l’implémentation de la méthode DepotEvenementsCommandeCuisineEnCoursDeTraitement.rechercheParReferenceDeCommandeEnLigne(). Celle-ci est un peu compliquée. En fait, vous devez créer un index qui vous permet de trouver une ReferenceCommandeCuisine à partir de sa ReferenceCommandeEnLigne. Vous devrez mettre à jour cet index chaque fois qu’une CommandeCuisine est ajoutée au dépôt.

  2. Terminez l’implémentation de DepotEvenementPizzaEnCoursDeTraitement.rechercherParReferenceDeCommandeCuisine(). Celle-ci est un peu plus compliquée. En fait, vous devez créer un index qui vous permet de trouver un Set<Pizza> à partir de sa ReferenceCommandeCuisine associée. Vous devrez mettre à jour cet index chaque fois qu’une Pizza sera ajoutée au dépôt.