open:도메인-이벤트와-메시지-버스-돌아보기

도메인 이벤트와 메시지 버스 돌아보기

  • 이벤트단일 책임 원칙을 지키도록 돕는다.
  • 메시지 버스메시지핸들러에게 연결한다
    • 메시지 버스를 이벤트와 이벤트 소비자를 연결하는 사전으로 생각할 수 있다
    • 메시지 버스는 이벤트의 의미를 전혀 모른다.
    • 메시지 버스는 단지 시스템에서 메시지를 전달하기 위한 둔한 인프라일 뿐이다.
  • 첫번째 선택지: 서비스 계층이 이벤트를 발생시키고 메시지 버스에 전달한다
    • 시스템에서 이벤트를 사용하는 가장 쉬운 방법은 작업 단위를 커밋한 직후 bus.handle(어떤 새로운 이벤트)를 호출하는 것이다.
  • 두번째 선택지: 도메인 모델이 이벤트를 발생시키고 서비스 계층이 메시지 버스에 이벤트를 전달한다.
    • 이벤트를 언제 발생시킬지 결정하는 논리는 모델과 함께 있어야 한다.
    • 따라서 도메인 모델에서 이벤트를 발생시키면 시스템 설계와 시스템의 테스트 가능성으르 높일 수 있다
    • 모델이 commit을 한 다음 핸들러가 이벤트를 찾아서 이벤트 버스에 싣는 것운 쉬운 일이다.
  • 세번째 선택지: UoW애그리케이트에서 이벤트를 수집해서 메시지 버스에 전달한다
    • bus.handle(aggreate.events)를 모든 핸들러에 추가하는 작업은 성가시므로, 메모리에 적재한 객체들이 발생시키 이벤트를 작업 단위가 발생하도록 시스템을 간결하게 만든다.
    • 이 방법은 가장 복잡한 설계이며 어쩌면 ORM의 마법에 의존하는 것일 수 있지만, 일단 설정하고 나면 사용하기 쉽고 깔끔하다

  • open/도메인-이벤트와-메시지-버스-돌아보기.txt
  • 마지막으로 수정됨: 2022/01/09 06:17
  • 저자 127.0.0.1