Using RavenDB as a CQRS Read Side Database
To model your data, there are different reasons for using a write side and a read side.
RavenDB allows you to do some interesting things modeling the different read and write structures of a database.
For example, ETL allows you to perform automatic transformation of your data from the write database to the read database which is also important when you have different services consuming each one.
The fact that RavenDB is a document database gives you better behavior because you don't have to worry that much about the modeling and you are able to do all sorts of interesting things using indexing, MapReduce, to transform your data.
An example might be when I am writing, I am adding a one-line item to an order. When I am reading, I need the entire order as a whole.
Watch RavenDB CEO Oren Eini show you how to use his Document Database as a CQRS read side data solution.
You will learn how to:
- use RavenDB as a CQRS read side database
- conquer the major technical and architectural challenges
- make modeling a lot easier using document database
- synchronize and update from an external event store like GetEventStore, Kafka, or an SQL Event Store
- deal with events that fail
You can see the code at https://bit.ly/2XVdkeS
You can see the data at https://bit.ly/3cHrynL
Command Query Responsibility Separation
What is it and what is it used for? How does the RavenDB Document Database play into it?
Command Query Responsibility Separation vs CRUD
A typical database has to serve all the needs, writes, reads, queries, everything. CQRS is different. The front end and the back end have different responsibilities. The benefits of changing the business logic and not necessarily the events.
A Concrete Example of this concept
Dissecting the specific types of events in our example to create a structure to generate and update a chart in real-time.
Using RavenDB for Tracking Events
Creating a multi-MapReduce system. Save time, steps, and complexity with some minor changes.
CQRS in Microservices
Meeting the specific set of standards in a microservice architecture using CQRS read side. Oren demonstrates with a live example in RavenDB. Managing the data flow, keeping data separate for each service, using RavenDB ETL, generating event documents, aggregations.
What in this System Should you Pay Attention to?
Deep diving into RavenDB to explore:
- Source data are always documents
- Updating source data to recompute the state and give new information
- The ease of Multi-pipelines
- Handling Failures