CQRS

Command-Query Responsibility Segregation (CQRS) is a pattern in which the main idea is to create separate data structures and operations to read and write data by creating segregated interfaces to interact with the system's data storage.

CQRS is not really based on events, but since it's often used in conjunction with event-sourcing implementations, it is worth mentioning the scenarios in which it would be applied. There are three main use cases where the segregation of interfaces to process and query information would be useful: