CQRS (Command Query Responsibility Segregation) uses different models for reading and writing data.
Write side:
- Optimized for commands (create, update, delete)
- Normalized data model
- Strong consistency
Read side:
- Optimized for queries
- Denormalized views
- Eventual consistency acceptable
Benefits:
- Scale read and write independently
- Optimize each for its purpose
- Simpler query logic
Trade-off: Increased complexity. Do not use for simple CRUD applications.