버스 통신에서 명령과 이벤트의 차이점은 약간 모호한 것 같습니다. 이벤트를 여러 번 처리 할 수 있지만 명령을 한 번만 실행해야한다는 것을 알고 있지만 여전히 명령이나 이벤트를 언제 사용 해야하는지 잘 모르겠습니다.
예를 보자.
새로운 사용자가 웹 애플리케이션에 등록 할 때 계정을 생성하고 확인 이메일을 보내야합니다.
계정 만들기 -이것은 CreateUserCommand
버스 로 보내고 특수 구성 요소가 처리 할 수있는 적절한 장소 인 것 같습니다 .
아니면 비동기 버스 통신으로 구현해서는 안됩니까? 우리는 사용자가 즉시 응용 프로그램에 로그인 할 수 있기를 원합니다. 버스를 사용하면 명령 실행시기를 보장 할 수 없습니다.
이메일 보내기 -구성 요소가 계정을 만든 후 두 가지 가능성을 볼 수 있습니다.
- 버스에 다른 명령을 보내십시오
SendConfirmationEmailCommand
- 이벤트 게시
UserAccountCreatedEvent
그리고 이메일 발신자 구성 요소가 그것을 잡고 작업하게하십시오.
한편으로는 확인 전자 메일을 한 번만 보내고 (명령 사용) 다른 한편으로는 새로 등록한 사용자에게 관심이있는 여러 구성 요소가있을 수 있다고 생각합니다. 로거 또는 SMS 발신자
어떻게 구현하겠습니까?