Modello CQRS

CQRS è l'acronimo di Command Query Responsibility Segregation. Come suggerisce il nome, abbiamo diviso l'applicazione in due parti: lato comando e lato query. Ora, ci si chiederà, cosa significano "comando" e "interrogazione"?

  • I comandi cambiano lo stato dell'oggetto o dell'entità, chiamati anche modificatori o mutatori.
  • Le query restituiscono lo stato dell'entità e non cambiano nulla. Un altro termine per loro è "accessori".

Nei tradizionali sistemi di gestione dei dati, sia i comandi che le query vengono eseguiti sullo stesso insieme di entità, con un'unica rappresentazione o vista. Le operazioni CRUD vengono applicate a un singolo datastore e si accede alla stessa entità o oggetto per gestire sia le operazioni di lettura che di scrittura.

Ci sono problemi con la visualizzazione di un'unica vista per entrambi i lati di lettura e scrittura:

  • Introduce il rischio di contesa di dati.
  • La gestione delle autorizzazioni e della sicurezza diventa complessa poiché gli stessi oggetti sono esposti sia alle operazioni di lettura che a quelle di scrittura.

Il modello CQRS contiene l'idea che il metodo debba modificare lo stato dell'entità o restituire il risultato, ma non entrambi. La segregazione dei modelli per i lati di lettura e scrittura riduce la complessità derivante dall'avere un'unica vista per entrambi.

Vantaggi di CQRS

  • Modelli di comando e query separati, con conseguente progettazione e implementazione semplificata del sistema e riduzione complessiva della complessità.
  • Si può facilmente ottimizzare il lato di lettura del sistema separatamente dal lato di scrittura, consentendo il ridimensionamento di ciascuno in modo diverso a seconda del carico sul lato. Ad esempio, i datastore di lettura spesso incontrano un carico maggiore e quindi possono essere ridimensionati senza influire sui datastore di scrittura.
  • È possibile fornire più visualizzazioni dei dati a scopo di query a seconda dei casi d'uso.

CQRS viene utilizzato principalmente in combinazione con Event Sourcing. Il modello del lato di scrittura del sistema basato su CQRS gestisce la persistenza degli eventi, fungendo da fonte di informazioni per il lato di lettura. Il modello di lettura del sistema fornisce visualizzazioni materializzate dei dati, in genere come visualizzazioni altamente denormalizzate.

Il diagramma seguente fornisce i dettagli di un sistema basato su CQRS:

Come implementare Event Sourcing e CQRS

Se utilizzi l'architettura dei microservizi per creare le tue applicazioni e desideri sfruttare i vantaggi di Event Sourcing e CQRS, sono disponibili vari framework e piattaforme per lo sviluppo di microservizi asincroni.

Eventuate è uno di questi esempi. Si tratta di una piattaforma applicativa composta da due prodotti, uno dei quali è Eventuate ES , un framework di microservizi che implementa un modello di programmazione e persistenza basato sul sourcing di eventi.

Lagom è un framework di microservizi open source basato sui framework Akka e Play. Lagom Persistence fa uso di Event Sourcing e CQRS per aiutare a realizzare un'architettura disaccoppiata.

Puoi trovare esempi di vita reale di come Lagom gestisce Event Sourcing e CQRS nei seguenti blog:

  • Persistenza dei dati in Lagom
  • Lato di lettura persistente in Lagom

Buon blogging!

Suggested posts

Configura e usa Apache Kafka con Spring Boot

Kafka con uno stivale a molla

Configura e usa Apache Kafka con Spring Boot

Introduzione Apache Kafka è una piattaforma di streaming distribuita open source che gestisce lo streaming di dati in tempo reale su larga scala, a throughput elevato e con tolleranza ai guasti. Il sistema si basa su un modello di pubblicazione-sottoscrizione in cui i produttori pubblicano messaggi negli argomenti e i consumatori si iscrivono a tali argomenti per consumare i messaggi.

I nostri segni primaverili

I nostri segni primaverili

Per noi, qui nel sud dell'Ontario, e in particolare nel nostro microclima, è un gioco da ragazzi tra l'arrivo di alcuni uccelli e la comparsa di una delle due piante in fiore primaverile. Polmonaria e Sanguinaria.

Related posts

Come salvare il pianeta e fare soldi

Come salvare il pianeta e fare soldi

Quante volte vi è capitato di buttare via una bottiglia di plastica, un barattolo di vetro, una lattina di alluminio o una confezione di energia green senza pensarci due volte? Quante volte hai desiderato di poter ottenere qualcosa in cambio del loro riciclaggio? Se sei come la maggior parte delle persone, la risposta è probabilmente molte volte. Il riciclaggio è spesso visto come una seccatura, un lavoro di routine o un dovere che non porta alcun beneficio immediato o tangibile.

"La fossa delle Marianne svelata: svelare le terrificanti verità nascoste dell'abisso"

"La fossa delle Marianne svelata: svelare le terrificanti verità nascoste dell'abisso"

Introduzione:Benvenuti, coraggiosi lettori, in un viaggio che ci porterà nelle profondità più oscure del nostro pianeta. In questo blog, ci addentriamo nel mondo enigmatico della Fossa delle Marianne, scoprendo i suoi segreti nascosti e scoprendo le verità agghiaccianti che giacciono sotto la sua superficie.

Ripensare i media: le cinque verità di McChesney e il futuro delle comunicazioni

Nel mondo iperconnesso di oggi, i sistemi dei media svolgono un ruolo fondamentale nel plasmare l'opinione pubblica e, di conseguenza, nel processo decisionale democratico. Nella sua profonda analisi dell'economia politica della comunicazione, lo studioso Robert McChesney sfida la saggezza convenzionale e presenta quelle che definisce le "cinque verità" sui media.

Ricerca di informazioni sui nomi di dominio

Un estratto da Small, Sharp Software Tools di Brian P. Hogan

Ricerca di informazioni sui nomi di dominio

Quando fai una richiesta a facebook.com, il tuo computer cerca il nome di dominio per tradurre quel nome di dominio in un indirizzo IP in modo che il tuo computer possa effettuare quella connessione.