CommandBus.execute()
컨트롤러는 CreateUserCommand처럼 상태 변경 의도를 명령
객체로 만들어 핸들러에 보낸다.
명령은 쓰기 모델을 변경하고 이벤트를 발행하며, 이벤트 핸들러가 읽기 모델을 갱신한 뒤 조회가 최적화된 저장소에서 값을 가져온다.
CommandBus.execute()
컨트롤러는 CreateUserCommand처럼 상태 변경 의도를 명령
객체로 만들어 핸들러에 보낸다.
CreateUserHandler는 리포지토리에 저장하고, 성공 후
UserCreatedEvent를 발행한다.
EventBus.publish()읽기 모델 갱신, 알림, 로그 적재 같은 후속 처리를 이벤트 핸들러로 분산한다.
비동기 전파Redis, Elasticsearch, Read Replica처럼 조회에 맞춘 저장소에 필요한 필드만 평탄화해 둔다.
조회 최적화메시지 큐, 재시도, 분산 로깅으로 이벤트가 읽기 모델까지 도달했는지 추적해야 한다.
운영 관찰