Come gestire le situazioni, quando il modello di lettura è diventato fuori sincrono con i registri degli eventi?

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

  •  26-09-2019
  •  | 
  •  

Domanda

Quando istantanee di aggregati è diventato fuori sincrono con il registro eventi posso semplicemente riprodurre i miei eventi da prime istantanee (che dovrebbero essere in sincronia). Lo stesso posso fare quando ho aggiungere / rimuovere nuovi campi o quando modifico la logica di gestori già esistenti.

Nel caso in cui ho bisogno di aggiungere nuovo modello di lettura (vale a dire nuova visualizzazione report) posso fare la stessa cosa di nuovo - io riprodurre i miei eventi

.

Ma come devo gestire la situazione, quando il modello di lettura è diventato fuori sincrono con il registro eventi? Memorizzazione di eventi e la pubblicazione sono in una transazione, ma l'aggiornamento del modello di lettura si è verificato in un'altra transazione, che può fallire. Ripetendo gli eventi fin dall'inizio può aiutare, ma può richiedere l'eternità. Ho bisogno di un concetto di istantanee per l'intero modello di lettura?

Come si fa a risolvere questo problema? Grazie.

È stato utile?

Soluzione

Quale potrebbe essere il motivo per il fallimento nel gestore di eventi? Quanto tempo è "eternità"?

leggere gli aggiornamenti modello raramente fallire (gestori di comandi a differenza), in quanto la parte interna logica è estremamente semplice. I fallimenti sono suscettibili di essere causati da problemi transitori (IO / network di interruzione) e sarà gestita automaticamente dal bus dei messaggi.

Tuttavia, se il modello di lettura è diventato danneggiato per qualche motivo, quindi il modo più semplice per ripristinare e per lo streaming di eventi attraverso. Anche i milioni di eventi avrebbero preso abbastanza piccola quantità di tempo. Inoltre, è sempre possibile utilizzare Map-Reduce approccio.

mi sento di raccomandare contro l'introduzione di istantanee di leggere i modelli. Credo che questo solo complica l'architettura senza risultati significativi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top