[architecture Series Ddd] 03.04.domainevent
February 19, 2025
4. 도메인 이벤트
- 중요한 발생을 포착하고 표현할 수 있게 해주는 기본 개념
- 도메인 이벤트는 도메인 모델 내에서 변경 사항을 전달하고 조정하는 매커니즘을 제공한다.
- 도메인 내에서 중요한 상태 변경 또는 발생을 나타내는 DDD 접근 방식의 기본이다.
- 세부 사항을 캡슐화하여 시스템 내의 이해 당사자에게 전달하는 것을 목표로 한다.
- 이벤트를 사용하면 시스템의 여러 구성 요소 간의 느슨한 결합을 보장하고 도메인의 동작을 더 잘 이해할 수 있다.
1. 구조
- 이벤트 페이로드
- 이벤트에 관련된 데이터 및 정보가 포함
- 컨텍스트와 특정 이벤트에 따라 달라질 수 있다.
- 메타 데이터
- 이벤트가 발생한 시간, 이벤트를 생성한 소스 또는 기타 관련 정보 등 추가 컨텍스트를 제공
- 이벤트 ID
- 다른 이벤트와 구별할 수 있는 고유한 ID 또는 식별자를 의미한다.
2. 사용 이유
- 일관성 유지
- 일관성을 유지하여 복잡하고 분산된 시스템에서 일관성을 보장하는데 도움이 된다.
- 즉각적 일관성 강제 대한 이벤트를 전파하고 처리하여 시스템을 일관된 상태로 되돌릴 수 있다.
- 루즈 커플링
- 서로 다른 컴포넌트 간의 통신 수단으로 사용하면 느슨한 결합을 할 수 있다.
- 상태 변경 추적 및 모니터링
3. 이벤트 사용 방법
- 이벤트 버스 또는 이벤트 디스패처와 함께 사용
- 컴포넌트 내에서 이벤트가 발생하면 이벤트 버스에 게시 된다. 그러면 구독자들은 자신의 상태를 업데이트하거나 추가 작업을 트리거하여 이벤트에 반응