In un sistema CQRS, la convenzione che seguiamo è il rendering della vista dettagliata di un aggregato (cioè GetById) utilizzando il modello di scrittura e le viste contenenti più aggregati (come un dashboard) utilizzando il modello di lettura. Pertanto, in un CRM delle vendite, abbiamo modellato l'interfaccia utente del dashboard dell'elenco di lead utilizzando il modello di lettura e la pagina dei dettagli del lead utilizzando il modello di scrittura.
Quando eseguo operazioni sulla vista di dettaglio di un lead, poiché eseguo il rendering della pagina utilizzando il modello di scrittura, le mie modifiche si riflettono immediatamente sull'interfaccia utente. Ad esempio, quando cambio il paese di un lead, le modifiche possono riflettere sull'interfaccia utente immediatamente. Ma quando ho bisogno di fornire la stessa API sul dashboard, le modifiche non saranno visibili immediatamente poiché il modello letto sarà alla fine coerente. Allo stesso modo quando si eseguono operazioni di massa come paese di aggiornamento di 10 lead, la mia pagina di elenco sarà alla fine coerente. Il ritardo nell'aggiornamento sarà nel peggiore dei casi nel mio caso in quanto i consumatori / abbonati (i modelli letti) sono basati su sondaggi e sondano con un intervallo di 1 secondo. C'è un modo per renderlo più real-time? Ho controllato altri CRM dove forniscono consistenza apparentemente immediata anche quando si eseguono operazioni di massa. Avere un ritardo di 1 secondo nella pagina di elenco non offre una buona esperienza del cliente.