Command Query Responsibility Segregation pattern.
This pattern has the following benefits:
- Supports multiple denormalized views that are scalable and performant
- Improved separation of concerns = simpler command and query models
- Necessary in an event sourced architecture
and the following drawbacks:
- Increased complexity
- Potential code duplication
- Replication lag/eventually consistent views
Note to myself: Try to implement the pattern by using read replicas.