CQRS는 쓰기 성공과 읽기 반영 사이에 지연이 생긴다

Command와 Query를 나누면 성능과 책임은 선명해지지만, 이벤트 반영과 읽기 모델 갱신 지연까지 제품 흐름에 포함해야 한다.

command

상태 변경 요청

CommandBus에 명령을 전달하고 Handler가 비즈니스 규칙을 실행한다.

write model

쓰기 모델 보호

트랜잭션으로 원본 상태를 먼저 안전하게 확정한다.

event

변경 사실 발행

상태 변경 이벤트를 남기고 다른 작업자가 읽기 모델을 갱신한다.

projection

읽기 모델 반영

화면 조회에 맞춘 테이블, 캐시, 색인을 최신 상태로 맞춘다.

query

조회 최종 응답

QueryBus는 읽기 저장소를 바라보고 최신 반영 시점을 함께 고려한다.

읽기 전환 기준쓰기 직후, 알림, 화면 요구가 실제로 다른가?

허용 지연사용자가 몇 초까지 늦게 보이는 결과를 납득할 수 있는가?

운영 추적이벤트 흐름을 로그로 추적할 수 있는가?