Question

dans CQRS, le sourcing événement est notre seule vraie source d'information, jamais confiance à votre lecture datamodel, alors si je dois afficher une boîte de message de confirmation qui affiche par exemple « 10 dernières actions de X utilisateur », alors ce que approch devrais-je utilisation?

1 - Envoyer une commande à la requête des 10 dernières actions à mes agrégats, puis l'ensemble publier 10 événements que je POIGNEE dans mon interface utilisateur contenant les actions de l'utilisateur

2 - Ou tout simplement, mon modèle requête Lire

qu'est-ce CQRS dire dans mon cas?

Merci les gars.

John SMITH

Était-ce utile?

La solution

Ne faites jamais confiance à votre modèle de lecture ne signifie pas que vous avez besoin de lire des données de base de données d'écriture. Cela signifie que vos données dans le modèle de lecture peuvent devenir invalides. Dans ce cas, vous devriez faire quelques corrections dans vos gestionnaires d'événements et à cause de vous faire confiance seule base de données d'écriture reconstruire la base de données de lecture de vos événements (base de données d'écriture).

Des règles simples (au moins je suis suivre ces règles):

  1. Toujours lire les données de base de données en lecture.
  2. Vous pouvez accéder à la racine globale que si vous avez besoin de vérifier quelque chose avant de demander à l'événement AR et quand vous avez besoin de rejouer les événements (dans votre domaine devrait être qu'une seule méthode d'accès AR - GetById).

Dans votre exemple, tout est simple: gérer les messages AR utilisateurs et stockent des événements au format (vous devez mapper les données de l'événement, ne pas stocker tout événement) vous avez besoin dans l'utilisateur (collection imbriquée dans le cas de la base de données NoSQL) ou dans le tableau séparé cas de la base de données SQL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top