Practice this topic in a realistic system design interview
Most applications start with one data model for everything. The same tables and classes are used to create data, update it, and read it back.
That is usually the right place to start. But as a system grows, reads and writes start placing very different demands on that model. Writes need to protect correctness. Reads need to be fast and shaped for the screen that displays them.
CQRS stands for Command Query Responsibility Segregation. It uses one model for changing data and a separate model for reading it.
This chapter covers what CQRS is, why some systems separate the way they write data from the way they read it, how the two sides stay in sync, and the trade-offs that come with that separation.