Cómo manejar situaciones, cuando el modelo se convirtió en lectura fuera de sincronía con los registros de sucesos?

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

  •  26-09-2019
  •  | 
  •  

Pregunta

Cuando instantáneas de los agregados se hicieron fuera de sincronía con el registro de eventos que simplemente puedo reproducir mis eventos desde principios de instantáneas (que suponen para estar en sintonía). Lo mismo que puedo hacer cuando puedo agregar / eliminar nuevos campos o cuando modifico lógica de los controladores existentes.

En caso de que necesite añadir nuevo modelo de lectura (es decir, la nueva vista de informe) que pueda hacer lo mismo otra vez - voy a repetir mis eventos

.

Pero, ¿cómo debo manejar la situación, cuando se convirtió en el modelo de lectura fuera de sincronía con el registro de eventos? El almacenamiento de los eventos y la publicación están en una sola transacción, pero la actualización del modelo de lectura se produjo en otra transacción, que puede fallar. La repetición de los acontecimientos de la ayuda lata principio, pero puede tomar la eternidad. ¿Es necesario un concepto de instantáneas de todo el modelo de lectura?

¿Cómo resolver este problema? Gracias.

¿Fue útil?

Solución

¿Cuál sería la razón del fracaso en el controlador de eventos? ¿Por cuánto tiempo es "la eternidad"?

Leer actualizaciones modelo raramente fallan (a diferencia de controladores de comandos), ya que el interior de la lógica es muy simple. Los fracasos son propensos a ser causados ??por problemas transitorios (IO / interrupción de la red) y serían manejados automáticamente por el bus de mensajes.

Sin embargo, si el modelo de lectura se corrompió por alguna razón, entonces la manera más fácil para restablecerlo y de flujo de eventos a través. Incluso los millones de eventos tomarían razonablemente pequeña cantidad de tiempo. Además, siempre se puede utilizar el enfoque de Mapa-Reducir.

Yo recomendaría contra la introducción de instantáneas de leer modelos. Creo que esto sólo complica la arquitectura sin ningún beneficio significativo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top