이벤트란 특정 트리거가 작동하면 시작되는 동작 혹은 사건을 의미한다.
또한 이벤트는 과거에 벌어진 어떤 것을 의미한다.
도메인 모델에서 이벤트를 사용하기 위해 이벤트, 이벤트 생성 주체, 이벤트 디스패터, 이벤트 핸들러가 필요하다.
이벤트는 발행한 이벤트에 대한 정보를 포함한다. 이벤트 핸들러가 작업을 수행하는 데, 필요한 데이터만을 가지고 있어야 한다.
또한, 현재 기준으로 과거에 벌어진 것을 표현하기 때문에, 이벤트 네이밍은 과거 시제를 사용한다.
도메인 모델에서 엔티티, 도메인 서비스와 같은 도메인 객체이다.
도메인 로직(비지니스)을 실행해서 도메인 상태 변화가 필요하면 관련 이벤트를 발행 시킨다.
이벤트 발행 예시는 아래와 같다.