>
내가 고객에게 주문 승인을 보낼 수있는 메일 알림 서비스를 개발하고자합니다. 주문 데이터는 비정규 화 된보기 (쿼리 측)에 있으며 메일 템플리트로 채워 져야합니다. 그런 다음 메일 알림 서비스를 통해 html 문자열 형식으로 이메일을 보냅니다. 그러나 주문 상태는 "주문 승인 이메일 발송"으로 변경해야합니다.

또한 마이크로 서비스 아키텍처에서 CQRS, ES 및 DDD 개념을 구현하려고합니다. 이 절차가 정확하고 여전히 개념과 일치합니까?

<올>
  • 명령문에서 주문 상태를 변경할 수 있도록 승인 메일을 전송하도록 명령 명령으로 HTTP POST API를 개발하십시오.
  • 는 명령 측 이벤트 "처리 주문 승인 메일"을 생성
  • 이벤트 프로세서가 이벤트를 처리합니다. 쿼리 측/비정규 화 된 뷰에서 주문 데이터를 가져와야합니다.
  • 이벤트 프로세서는 데이터에서 승인 메일을 생성하고 데이터를 템플리트에 채 웁니다.
  • 이벤트 프로세서는 페이로드에 메일 본문 (html 형식)이있는 메일 알림 서비스로 HTTP POST를 호출합니다.
  • 이벤트 프로세서는 주문 상태를 "주문 승인 메일 발송"으로 변경하기 위해 주문 서비스 (명령 측)에 HTTP PUT을 호출합니다.
  • 그러나이 절차가 적용되면 사용자는 "메일 전송"응답을 실시간으로받을 수 없습니다. 메일이 성공적으로 전송 된 클라이언트/프런트 엔드를 트리거하는 방법은 무엇입니까? 따라서 클라이언트 측에서는 API에 대한 많은 호출을 새로 고치거나 다시 시도 할 필요가 없습니다.

    감사합니다.

    • 답변 # 1

      이 주제에 대해 얼마 전에 글을 썼습니다. CQRS 시스템에서 올바른 방법으로 이메일을 보내는 방법

      짧은 버전은 프로세스 관리자를 사용한다는 것입니다. 프로세스 관리자는 이벤트를 청취하고 이러한 이벤트의 결과로 명령을 발행 할 수 있습니다. 일정을 다시 실행 한 경우 이메일을 다시 보내지 않는 메커니즘이 있는지 확인하십시오.

      UI 관련. 이 질문을 다루는 다른 게시물이 있습니다. UI에서 최종 일관성을 처리하는 4 가지 방법

      짧은 대답이 있습니다. 이메일을 보내기 위해 코드가 실행 된 후 이메일이 전송되지 않는다고 얼마나 자주 생각하십니까? 당신이 합리적으로 견고한 시스템을 가지고 있다고 가정하면, 대부분의 시간이 작동하기를 바랍니다. 너무 가짜. 그리고이있는 경우에만 문제가 사용자와 또는 관리자 사용자에게 알릴 수있는 방법을 찾을 수 있습니다. 화려하게 만들고 싶다면 Signalr 또는 pub-sub 프레임 워크와 같은 것을 사용하여 메시지를 UI에 보낼 수 있습니다.

      어쨌든-도움이 되길 바랍니다.

  • 이전 css - primeng - p- 패널의 스타일링 크기 및 정렬
  • 다음 java - android studio - 생성자 측면에서 baseadapter와 arrayadapter의 차이점