2010-08-01 10 views
5

Nous essayons CQRS et DDD et l'approvisionnement d'événements. Disons que j'ai une mise à jour client une adresse e-mail, ce qui déclenche l'événement CustomerUpdatesEmailAddress, cela passe à mon opérationnel (écriture DB) et met à jour les tables. Notre système est conçu de telle sorte qu'il y ait un processus ETL qui prend des données opérationnelles et met à jour la base de données (c'est une base de données de lecture) .Voici que l'ETL peut faire de gros efforts en fonction de l'adresse email changée), comment pouvons-nous synchroniser la base de données de rapports (DataMart et le côté opérationnel) que l'utilisateur veut voir la mise à jour de l'adresse e-mail immédiatement à l'écran?CQRS, DDD synchronisation base de données de rapports

Répondre

13

Dans this podcast (diapositive 47 par exemple) Udi Dahan indique que le client n'a pas à attendre que le site de lecture soit mis à jour. Le client peut "simuler". Ainsi, par exemple, si un utilisateur change son adresse e-mail, le client peut prendre la nouvelle adresse à partir de la commande qu'il a envoyée et la montrer à l'utilisateur avant la commande a été réellement traitée.

+1

+1 pour cette réponse. Il est plus important de poser la question "Pourquoi l'utilisateur a-t-il besoin de voir l'adresse e-mail mise à jour immédiatement?". Si c'est pour les commentaires des utilisateurs, la réponse de Mikael devrait vous donner suffisamment de temps pour lancer le processus ETL. – stung