이벤트 소싱 도메인 모델은 이벤트 소싱 패턴을 사용하여 애그리게이트 상태를 관리함

즉, 애그리게이트의 상태를 유지하는 대신 모델은 각 변경사항을 설명하는 도메인 이벤트를 생성하고 애그리게이트 데이터에 대한 원천 데이터로 사용함

이벤트 소싱


“순서도만 보여주고 테이블을 숨기면 상대가 계속 어리둥절할 것이다. 테이블을 보여주면 일반적으로 순서도는 필요 없게됨. 테이블의 정보만으로도 명백하기 때문”

프레드 브룩스의 추론을 사용하여 이벤트 소싱 패턴을 정의하고 이것이 기존의 모델링과 데이터 저장 방식 측면에서 어떻게 다른지 이해해보자.

image.png

→ 텔레마케팅 시스템에 잠재 고객 또는 리드를 관리하는 데 사용하는 테이블임

→ 각 리드에 대해 ID, 성과 이름, 레코드가 생성되고 업데이트된 시간, 전화번호, 리드의 현재 상태를 볼 수 있음

다양한 상태를 조사하여 각 잠재 고객의 처리 주기를 가정할 수도 있음

테이블의 스키마와 테이블에 저장된 데이터를 분석하는 것만으로도 수집할 수 있는 정보가 상당히 많음. 데이터를 모델링할 때 어떤 유비쿼터스 언어가 사용되었는지 추측할 수도 있음.

그러나 이 테이블에는 어떤 정보가 빠져 있을까?