이벤트1 10~11장 이벤트, CQRS ( 完 ) 10.1 시스템 간 강결합 문제쇼핑몰에서 구매를 취소하면 환불을 처리해야 한다. 이때 환불 기능을 실행하는 주체는 주문 도메인 엔티티가 될 수 있다. 보통 결제 시스템은 외부에 존재하므로 RefundService는 외부에 있는 결제 시스템이 제공하는 환불 서비스를 호출한다. 2가지 문제가 발생할 수 있다. 1) 외부 서비스가 정상이 아닌 경우 트랜잭션 처리를 어떻게 해야 할지 애매하다. 외부의 환불 서비스를 실행하는 과정에서 익셉션이 발생하면 환불에 실패했으므로 주문 취소 트랜잭션을 롤백하는 것이 맞아 보인다. 하지만 반드시 트랜잭션을 롤백 해야 하는 것은 아니다. 주문은 취소 상태로 변경하고 환불만 나중에 다시 시도하는 방식으로 처리할 수도 있다. 2) 두 번째 문제는 성능에 관한 것이다. 환불을 처리.. 2024. 12. 8. 이전 1 다음