Question

Je suis nouveau à CQRS et confus sur la façon dont la commande va écrire un changement d'adresse à un objet client

Disons que j'ai divisé les informations client en deux tables

client - base de données de domaine

Actif Préféré

Base de données Customer_Read

Nom,

Adresse,

Téléphone,

email

utilisateur modifie l'adresse du client. Les champs d'adresse sont dans la base de données de lecture. il peut y avoir 3 ou plusieurs tables convivial de requête qui est la conservation des informations d'adresse.

Si je comprends la mise en oeuvre de CQRS (échantillon) Domaine client (supprimé racine globale) devrait être la publication d'événements sur le changement d'adresse qui doivent être pris en charge par plusieurs gestionnaires de mettre à jour chacun de la table.

Comment puis-je mettre quand je ne serai pas en train de changer l'état d'objet client? Ne domaine doivent savoir qu'il a l'adresse dans une autre base de données?

Je vous remercie à l'avance.

Cordialement,

Le Mar

Mise à jour -

Après avoir traversé plus de messages sur le net je suppose que si l'état ne change pas par la commande aucun événement ne sera généré pour sauver le domaine lui-même mais les événements sera appliquée pour modifier l'adresse dans la requête / Voir modèle tables sympathiques.

Était-ce utile?

La solution

encore besoin de persister quelque part un peu de données de domaine dans la persistance d'écriture. De cette façon, l'adresse est stockée dans ce magasin de persistance, l'événement est publié après l'avoir modifié.

De cette façon:

  • s'il n'y avait pas de changement - nous pouvons sauter la publication de l'événement
  • domaine n'a pas besoin de savoir quoi que ce soit sur les objets qui peuvent (ou non) être abonnées à ses événements.

Cette logique s'applique à la persistance dans BDs relationnelles (MS SQL avec NHibernate, par exemple) et l'approche d'approvisionnement de l'événement.

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