Sono in fase di ricerca di CQRS + ES. Mai fatto nel mondo reale ancora. Ma molto presto.
Tuttavia, ciò che ho visto in StackOverflow e nei progetti, CQRS sembra essere il fuoco e dimenticare.
Quindi, se esiste un comando chain che richiede il risultato di un altro comando.
Primo esempio, gestione dei premi e contesti di gestione degli account limitati
-
Il livello applicazione invia il comando GiveReward per premiare la gestione
-
Gestione ricompense attiva un comando CreateTransaction per tenere conto del contesto limitato e ottenere il risultato come TransactionID (GUID). Fai riferimento a questa risposta, posso ottenere TransactionID mentre CQRS è stato attivato e dimentica
-
La gestione dei premi deve utilizzare alcuni dati di tale transazione interrogandoli dalla gestione degli account utilizzando TransactionID prima di attivare il prossimo evento.
Ecco come posso garantire che la gestione degli account abbia completato la creazione del modello di lettura, in modo che la gestione dei premi possa leggerlo?
Secondo esempio, Rest API per aprire una casella di Gacha.
-
L'utente chiama questa api.
-
Il livello applicazione invia il comando OpenGacha.
-
Spara sul livello aziendale e dimentica GachaOpenedEvent.
Come può rimanere api garantire OpenGachaEvent ha creato il modello di lettura?
Questi scenari mi portano a una domanda,
Il CQRS deve essere acceso e dimenticato, se è necessario leggere la garanzia dopo il comando?
Qualche altra soluzione per risolvere questo problema?