CQRS는 Command Query Responsibility Segregation의 약자로, 명령과 쿼리의 책임을 분리하는 패턴을 의미한다. 명령은 시스템의 상태를 변경하는 작업을 의미하며, 쿼리는 시스템의 상태를 조회하는 작업을 의미한다. 단일 모델로 상태 변경과 조회를 사용하면 모델의 복잡성과 성능에 문제가 발생할 수 있기 때문에 대규모 트래픽이 발생하는 경우 CQRS를 사용하는 것을 생각해볼 수 있다. CQRS는 복잡한 도메인에 적합하다. 도메인이 복잡할수록 명령 기능과 조회 기능이 다루는 데이터 범위에 차이가 난다.
명령 모델은 CQRS 패턴에서 명령을 처리하는 모델을 의미한다. 명령 모델은 시스템의 상태를 변경하는 작업을 수행한다.
조회 모델은 CQRS 패턴에서 쿼리를 처리하는 모델을 의미한다. 조회 모델은 시스템의 상태를 조회하는 작업을 수행한다.
조회 모델은 다음 두 가지 역할을 수행한다.