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"?
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:
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.
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:
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:
Buon blogging!
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.
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.
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.
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.
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.
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.