Applicabilità CQRS quando alcuni comandi devono bloccare l'interfaccia utente

5

Sto lavorando a un'app che mi piacerebbe molto passare da un'architettura a strati tradizionale piuttosto tradizionale a CQRS, per una serie di motivi, non ultimo per il fatto che avere un robusto log di eventi aggiungerà un paio di richieste di funzionalità Riesco a vedere barricato verso di me banale da accontentare.

Ora ho un problema concettuale: di circa 40 comandi che l'utente può avviare, ce ne sono tre che l'utente ha bisogno di per essere sicuri che siano stati completati correttamente prima che l'interfaccia utente consenta loro di fare qualsiasi altra cosa. Tutto il resto si inserisce nel modello "invia una richiesta, esegui una ricerca per il successo successivo", tranne per questi tre comandi.

Come viene gestito in CQRS-land? Separo i tre comandi di blocco in modo efficace in un terzo servizio, quindi ho comandi, query e blocchi di comandi? Ho un processore di eventi a due stadi con un primo stadio di blocco in richiesta che viene utilizzato solo per i comandi di blocco? L'esistenza di questi tre comandi significa che l'idea di applicare CQRS non è valida? Dovrei solo far finta che non non stia bloccando e sondando per avere successo nell'interfaccia utente?

Sono sicuro che questo deve venire su altri progetti, come viene solitamente gestito?

    
posta regularfry 30.06.2011 - 18:29
fonte

2 risposte

2

Nessuno ha mai detto che tutti, o comunque siano, i comandi devono essere asincroni. Il concetto principale è separare letture e scritture. Quando usi comandi ed eventi come meccanismo di trasporto, renderli asincroni è decisamente più semplice.

Elabora questi in modo sincrono.

    
risposta data 30.06.2011 - 21:05
fonte
1

è più semplice fare in modo che un'operazione asincrona sembri sincrona, piuttosto che il contrario.

potresti utilizzare REST e l'interfaccia utente, in modo da fornire una finestra di dialogo modale e fornire un callback / sondaggio per il successo. Ciò ti consentirebbe in effetti di avere un meccanismo per farlo sembrare sincrono e modale.

Sembra però che tu abbia uno scenario che trarrebbe beneficio da una saga. Scopri cosa Udi ( www.udidahan.com ) e Greg Young (le competenze sono importanti) hanno da dire su questo.

    
risposta data 30.06.2011 - 23:48
fonte

Leggi altre domande sui tag