4. 도메인 이벤트

  • 중요한 발생을 포착하고 표현할 수 있게 해주는 기본 개념
  • 도메인 이벤트는 도메인 모델 내에서 변경 사항을 전달하고 조정하는 매커니즘을 제공한다.
  • 도메인 내에서 중요한 상태 변경 또는 발생을 나타내는 DDD 접근 방식의 기본이다.
  • 세부 사항을 캡슐화하여 시스템 내의 이해 당사자에게 전달하는 것을 목표로 한다.
  • 이벤트를 사용하면 시스템의 여러 구성 요소 간의 느슨한 결합을 보장하고 도메인의 동작을 더 잘 이해할 수 있다.

1. 구조

  1. 이벤트 페이로드
    1. 이벤트에 관련된 데이터 및 정보가 포함
    2. 컨텍스트와 특정 이벤트에 따라 달라질 수 있다.
  2. 메타 데이터
    1. 이벤트가 발생한 시간, 이벤트를 생성한 소스 또는 기타 관련 정보 등 추가 컨텍스트를 제공
  3. 이벤트 ID
    1. 다른 이벤트와 구별할 수 있는 고유한 ID 또는 식별자를 의미한다.

2. 사용 이유

  1. 일관성 유지
    1. 일관성을 유지하여 복잡하고 분산된 시스템에서 일관성을 보장하는데 도움이 된다.
    2. 즉각적 일관성 강제 대한 이벤트를 전파하고 처리하여 시스템을 일관된 상태로 되돌릴 수 있다.
  2. 루즈 커플링
    1. 서로 다른 컴포넌트 간의 통신 수단으로 사용하면 느슨한 결합을 할 수 있다.
  3. 상태 변경 추적 및 모니터링

3. 이벤트 사용 방법

  1. 이벤트 버스 또는 이벤트 디스패처와 함께 사용
  2. 컴포넌트 내에서 이벤트가 발생하면 이벤트 버스에 게시 된다. 그러면 구독자들은 자신의 상태를 업데이트하거나 추가 작업을 트리거하여 이벤트에 반응