CQRS 선택 기준

CQRS 선택 기준

패턴 자체가 목표가 아니다. 읽기 모델 최적화, 쓰기 규칙 보호, 이벤트 동기화 비용을 감당할 근거가 있을 때 적용한다.

crud

단순 CRUD 비교

읽기와 쓰기 비율이 비슷하고 모델이 단순하면 CRUD가 더 안전하다. CQRS는 기본값이 아니다.

command

Command 경로

상태 변경은 CommandBus와 Handler가 처리한다. 비즈니스 규칙과 트랜잭션 경계를 쓰기 모델에 모은다.

query

Query 경로

조회는 QueryBus와 읽기 저장소로 분리한다. 화면에 필요한 형태로 평탄화하면 JOIN과 계산 비용을 줄일 수 있다.

event

이벤트 동기화

쓰기 후 읽기 모델 반영은 지연될 수 있다. 사용자 안내, 재시도, 중복 처리 기준을 함께 설계한다.

trace

관측 가능성

Command, Event, Query 흐름이 분산되므로 로그 상관 ID와 추적 시스템이 없으면 장애 원인을 찾기 어렵다.