Comment gérer les situations, lorsque le modèle de lecture est devenu synchronisé avec les journaux d'événements?

StackOverflow https://stackoverflow.com/questions/4238806

  •  26-09-2019
  •  | 
  •  

Question

Lorsque des instantanés d'agrégats se sont désynchronisés avec journal des événements que je peux simplement rejouer mes événements instantanés de début (qui supposés être synchronisés). Le même que je peux faire quand j'ajouter / supprimer de nouveaux champs ou quand je modifie la logique des gestionnaires existants.

Dans le cas où j'ai besoin d'ajouter un nouveau modèle de lecture (à savoir une nouvelle vue du rapport) que je peux faire la même chose à nouveau - je vais rejouer mes événements

.

Mais comment la situation que je devrais gérer, lorsque le modèle de lecture est devenu synchronisé avec le journal des événements? Le stockage des événements et la publication sont dans une transaction, mais la mise à jour du modèle de lecture a eu lieu dans une autre transaction, qui peut échouer. La répétition des événements de l'aide tout début de la boîte, mais il peut prendre l'éternité. Ai-je besoin d'un concept de clichés pour l'ensemble du modèle de lecture?

Comment allez-vous résoudre ce problème? Merci.

Était-ce utile?

La solution

Quelle serait la raison de l'échec dans le gestionnaire d'événements? Depuis combien de temps est "l'éternité"?

Lire les mises à jour du modèle manquent rarement (gestionnaires de commandes à la différence), puisque l'intérieur logique est extrêmement simple. Les échecs sont susceptibles d'être causés par des problèmes transitoires (IO / panne du réseau) et seraient automatiquement par le bus de message.

Cependant, si le modèle de lecture est devenu corrompu pour une raison quelconque, la meilleure façon de le réinitialiser et de diffuser des événements à travers. Même des millions d'événements prendraient raisonnablement peu de temps. De plus, vous pouvez toujours utiliser la carte-reduce approche.

Je recommande contre l'introduction d'instantanés pour lire les modèles. Je pense que cela ne fait que compliquer l'architecture sans gains importants.

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