도메인 이벤트를 구현할 때 이벤트 처리기는 도메인 문제에만 사용해야합니다. 당신이 비즈니스 전문가들과 토론하거나 도메인 모델에 관심이있는 어떤 사람들이 사용할 수 있도록 열어 놓았습니까?도메인 이벤트 핸들러 - 응용 프로그램 계층 관련 문제에 사용해야합니까?
이 예제는 간단한 예제를 통해 가장 잘 설명 할 수 있습니다. 직원에게 작업 예약을위한 Calendar 응용 프로그램을 고려해보십시오.
우리는 다음과 같은 도메인 이벤트가있을 수 있습니다 ...
는 가 가 이
우리는 예를 들어 약속은 직원이 외부의 시간으로 이동 될 때, 이러한 이벤트에 대한 처리기를
을 AppointmentMoved AppointmentContentChanged AppointmentRemoved AppointmentAdded 근무 시간 우리는 경고 깃발을 세웠다.물론 이러한 이벤트에 관심이있는 애플리케이션 문제가 있습니다. 일정에 약속이 추가되면 나중에 변경 작업을 수행 할 수 있도록 작업 단위에 약속을 추가해야합니다.
이러한 응용 프로그램이 도메인 이벤트의 소비자가되어야합니까, 아니면 별도의 시스템 이벤트를 발생시키고 처리해야합니까?
나는 그들이 그 사건을 해고하는 총체와 같은 거래에서 사건 처리를 조장하는 것을 의심한다. Udi는 이벤트 핸들러가 도메인과 아무 관련이없는 경우 (예 : 이메일 메시지) 특히 집계 트랜잭션을 외부에서 "실행 및 종료"하는 것이 더 낫다는 점을 기억합니다. "화재와 잊기"란 청취자가 메시지를 받았는지 상관하지 않지만 메시지를 발사 할 때주의해야합니다 (메시지 보내기). 집계가 끝나면 상태 변경 + 지속성 메시지를 보냅니다. 그래서 나는 끈기 후에 사건을 해고하려고합니다. – Tudor
P. 이벤트는 집계에 의해 언제든지 실행될 수 있지만 집계 지속 후에 (또는 이벤트를 트리거 한 특정 명령이 완료된 후에) 실제 메시지 전달을 처리해야합니다. – Tudor