>

Checkout에 다음과 같은 서비스가 있다고합시다 :

<올>
  • 주문 서비스, 주문 생성 및 배송, 지불 및 주문 및 주문 수명주기 관리

  • 인벤토리 서비스는 제품의 가용성을 제공합니다.

  • 배송 서비스, 배송 옵션 및 비용 제공

  • 고객 프로필 서비스는 고객 정보를 제공합니다.

  • 신용 서비스, 지불 승인

  • 예약을하는 예약 서비스

  • 다음은 주문 생성 흐름입니다.

    주문이 생성되고 사용자가 배송 주소를 제공하고 배송 옵션이 계산되며 결제가 이루어지고 주문이 이루어지고 확인이 사용자에게 표시됩니다.

    많은 소매점 결제가 동기화 및 주문 서비스 조정입니다.

    이벤트 소스, CQRS 및 이벤트 저장소를 사용하는 경우 주문 서비스가 주문 이벤트를 작성하고 이벤트 저장소에 지속되고 도메인 이벤트 및 이벤트 저장소에 등록 된 기타 모든 서비스가 전달 옵션을 업데이트해야하므로 공개하는 경우, 배송비, 주문 완료에 대한 지불 및 CQRS를 사용하여 사용자가 검토 할 각 단계의 상태를 알려줍니다.

    이해하려고합니다 :

    배송 주소 추가, 예약, 배송 옵션 선택, 결제 추가 및 주문 완료와 같은 모든 도메인 이벤트 결제와 함께 결제 애플리케이션이 얼마나 복잡합니까?

    주문 서비스의 동기화 작업이 결제 요청을 조정하는 것보다 빠릅니까?

    실패한 경우 최종 일관성이 유지됩니까? 영원한 일관성을 다루는 방법?

    • 답변 # 1

      체크 아웃 프로세스에 이벤트 소싱과 CQRS를 사용할 수 있습니다. 당신이 말한 것처럼 당신은 이벤트를 일으키고 가입 한 서비스가 그것에 반응 할 것입니다. 질문이 얼마나 복잡하거나 쉬운가? 귀하의 경우에는 그만한 가치가 있습니까? 이벤트 소싱 및 CQRS는 많은 이점이있는 복잡한 패턴이지만 올바른 방식으로 구현해야합니다.

      결국 일관성을 유지하려면 실패시 롤백에 대한 보상 조치를 제기해야하는 Saga Pattern에 의존해야합니다.

  • 이전 json - 사이트에서 나머지 API를 자주 사용하는 Java 애플리케이션이있는 데이터베이스가 필요합니까?
  • 다음 python - Jupyter 노트북에서 커널을 시작하지 못했습니다