CQRS, microservizi e replica delta

2

Abbiamo un micro-servizio che ha un modello di dominio e un servizio di analisi per il dominio che ha il proprio modello di query. Il modello di dominio e il modello di query sono archiviati in persistenza separate.

Attualmente il nostro modello di query utilizza un sottoinsieme degli attributi dal modello Dominio. Tuttavia, in futuro, abbiamo l'obbligo di aggiungere ulteriori attributi dal modello di dominio al modello di query, in questo caso esistono raccomandazioni in merito all'approccio migliore che può essere utilizzato per compilare la parte "delta" del modello di query con ciò che è disponibile nel modello di dominio?

Per inciso, anche questo sembra essere un punto debole del CQRS eventuali miglioramenti al modello di query richiederebbero una sorta di ricarica dei dati per popolare la parte migliorata del modello di query. O stiamo facendo qualcosa di sbagliato qui?

    
posta mithrandir 24.01.2018 - 08:08
fonte

1 risposta

0

Presupposto: non usi il sourcing di eventi.

È possibile utilizzare uno script di importazione una tantum che recupera i dati necessari dal modello Write e popola il modello di lettura. Questo script rimane nel livello Infrastruttura e può essere scartato dopo aver eseguito la reinizializzazione. Se puoi permetterti un tempo di inattività, abbassi il modello Leggi (smetti di indirizzarti le richieste), esegui la migrazione dello schema e del codice, esegui lo script di importazione, quindi esegui il backup.

Se non puoi permetterti un tempo di inattività, devi utilizzare il nuovo modello di lettura, ma non utilizzarlo fino a quando lo script non ha completato import . Quindi, utilizzando una sorta di sincronizzazione tra lo script e il vecchio modello di lettura, il traffico viene reindirizzato al nuovo modello di lettura e puoi eliminare il vecchio modello di lettura.

    
risposta data 25.01.2018 - 08:36
fonte

Leggi altre domande sui tag