검증과 트랜잭션을 가진 쓰기 모델
Command사용자의 변경 의도
Handler권한, 검증, 트랜잭션
Aggregate불변식과 상태 전이
CQRS의 핵심은 파일 이름을 나누는 것이 아니라 쓰기 규칙과 읽기 최적화가 서로 다른 속도로 변하도록 분리하는 데 있다.
| 질문 | Command 쪽 신호 | Query 쪽 신호 | 결정 |
|---|---|---|---|
| 상태 전이가 복잡한가규칙과 실패 케이스가 많은가 | 도메인 규칙, 트랜잭션, 이벤트 필요 | 단순 조회에는 과한 구조 | 쓰기 모델 분리 |
| 읽기 요구가 다른가목록/통계/검색이 많은가 | 원본 모델 유지 | projection, search index, cache 사용 | 읽기 모델 분리 |
| 지연을 허용하는가쓰기 직후 조회가 늦어도 되는가 | 변경 성공을 먼저 확정 | eventual consistency 표시 필요 | UX 기준 명시 |
판정 기준: Command와 Query의 변경 이유가 다르고, 조회 최적화가 쓰기 규칙을 오염시키기 시작할 때 CQRS가 값을 한다.