읽기와 쓰기를 같은 모델에 묶지 않는다

Command는 상태 변경에, Query는 화면 조회에 맞춰 서로 다른 모델로 다룬다.

Command side

상태와 규칙을 지킨다

주문 생성, 결제 승인처럼 업무 규칙을 통과해야 하는 요청을 처리한다.

CommandBus
CommandHandler
Write Model

Query side

조회 화면에 맞춘다

목록, 검색, 통계처럼 사용자가 빠르게 읽어야 하는 데이터를 준비한다.

QueryBus
QueryHandler
Read Model

EventBus / Saga 쓰기 성공 후 읽기 모델을 갱신하거나 다음 업무 단계를 이어 준다.