CQRS
Command and Query Responsibility Segregation (CQRS) is an architecture style that separates read operations from write operations.
Traditionally, the same data model is used to query and update a database. However, more complex applications, problems with this shared data model appear. For example, To satisfy the write requirements our data model need to contain complex validation and business logic. Our read requirements will have no need for that extra logic. Instead, it may need to perform many different queries, using data structures that are needed by our write component. Complexity is increased on both sides.
CQRS addresses these problems by separating reads and writes into separate models, using commands to update data, and queries ...