CQRS Command Query Responsibility Segregation - Separate the query side from the command side.
Use the CQRS pattern when
- you want to scale the queries and commands independently.
- you want to use different data models for queries and commands. Useful when dealing with complex domains.
- you want to use architectures like event sourcing or task based UI.