Command and Query Responsibility Segregation (CQRS) Pattern
https://msdn.microsoft.com/en-us/library/dn568103.aspx
Segregate operations that read data from operations that update data by using separate interfaces. This pattern can maximize performance, scalability, and security; support evolution of the system over time through higher flexibility; and prevent update commands from causing merge conflicts at the domain level.
