2010-11-23 32 views
3

Comment sourcing événement peut être associé à plusieurs types d'objets dictionnaire comme Country, Region, etc. Time Zone et types dictionnaire de modèle de domaine particulier comme Budget ou Availability définitions. Certains objets du dictionnaire devraient pouvoir être édités dans l'interface d'administration, mais pas dans certains cas.Sourcing événement et objets dictionnaire

Par exemple, nous avons décidé que nous ne avons pas besoin UI admin pour les pays. Ainsi, on n'a pas besoin de mettre en œuvre AddCountry/RemoveCountry commandes.

Si je produis un ensemble de CountryAdded événements dire que je devrais persister des objets du dictionnaire comme flux d'événements? Utilisons-nous une source de vérité autre que le flux d'événements?


Dans le cas où je peux aller sans flux d'événements pour les objets de dictionnaire, comment vous allez résoudre ce problème:

Afficher la liste des pays avec le nombre d'utilisateurs dans chaque pays.

Dans ce cas, j'ai besoin d'une représentation des objets Country dans le modèle de lecture avec l'écouteur pour l'événement UserAdded.

Merci.

Répondre

5

Si vous utilisez le sourcing des événements comme mécanisme de persistance, puis:

    flux d'événements
  • est la seule source de vérité (instantanés d'objet généré à partir de flux d'événements pourrait être utilisé pour améliorer les performances, mais ils ne sont que les technique).
  • Lorsque vous utilisez le sourcing des événements, vous n'avez pas besoin de générer des événements explicitement - il suffit de publier des événements réels générés lors du traitement de la commande.
  • Si vous avez une liste prédéfinie de pays, qui ne changeront jamais, vous pouvez simplement coder en dur et les référencer en fonction de leurs codes de pays. Cependant, cela implique que le modèle de vue et l'interface utilisateur en soient informés et que les pays ne changent pas.

BTW Je recommande de poster des questions comme celles-ci à DDD/CQRS group. C'est la communauté la plus active sur les questions de CQRS/DDD/ES.

+0

Merci Rinat! Vous avez complètement répondu à ma question. Merci de me pointer sur le groupe DDD/CQRS. J'ai trouvé beaucoup de questions/réponses utiles. Je vais poser mes prochaines questions à venir dans ce groupe. –