inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Microservice 구현 (with EDA,Hexagonal, DDD)

이벤트 흐름 설계 변경

보상트랜잭션 후 클라이언트 알림 방법 등

357

백린이

작성한 질문수 38

0

강사님 덕분에, EDA, DDD, 헥사고날 등 어려운 개념에 대해 좀더 친숙해질 수 있어서 너무 감사합니다!
강의를 다 듣고 몇가지 궁금증이 생겨 질문 남겨요!

 

  1. 대여 취소, 반납 취소 등으로 보상트랜잭션이 필요한 경우, 보통 클라이언트에게 알림(?)은 어떻게 보내나요? 알림 서버를 사용하나요?

  2. EDA 시, 1개의 서버의 응답이 너무 느린 경우, 비동기더라도 느릴수 있는데, 이럴 걸 대비하여 자체적으로 타임아웃시간을 정해서 해당 시간 초과면 시간 초과 응답을 클라이언트한테 보내나요?

EDA msa ddd

답변 1

1

han jeong heon

답변드리면.

1의 경우는 클라이언트에 알림을 보내는 방법은 어떤 도메인 성격이냐에 따라 보낼수도 있고 보내는 방법도 너무 다양할 것 같습니다. 일반적인 btc라하면 이메일이나, sms, sns등을 통해 보내고 있고, 보내는 방식도 다양하겠지만 예시와 같이 EDA아키텍처를 사용하는 경우는 동일하게 메시지/이벤트 규를 사용하고 있습니다.

2의 경우는 일반적으로 1개의 서버로 구성하지 않고 여러개의 서버를 클러스터로 구성합니다. 카프카 같은 경우는 가능하고요. 따라서 ^ ^ 비동기라 해서 그렇게 느리지가 않습니다.

0

백린이

  1. 만약, A라는 이벤트로 인해 X 도메인, Y 도메인, Z 도메인에 상태변경이 필요한대, Y 도메인의 서버 문제로, Y 도메인의 상태가 변경 불가능한 경우, 결국 A 라는 이벤트는 보상 트랜잭션이 필요한대, 이때, 비동기인데, 어떻게 실패에 대한 응답을 클라이언트에게 어떻게 줄까요? 예를 들어, 주문 이벤트인데, 재고 수량 부족으로 주문이 실패한 경우, 클라이언트에게 알려줘야 하는데, 이런 상황은 이메일이나 sms, sns 로 해당 실패 상황을 알리는게 좀 이상할 것 같아서요. 혹시, websocket을 사용할까요?

  2. 아하! 저는 비동기 자체보다는 외부 환경에 의해 예를 들어 네트워크 문제로 통신이 느리거나 끊긴 경우, 프로듀서로 이벤트를 보냈지만, 카프카가 못받는 경우 또는 프로듀서에 이벤트를 보냈지만 컨슈머가 받지 못한 경우 등에 대해 어떻게 처리해야할까 궁금했습니다. 어떻게 보면 1번의 질문과 비슷한 내용 같아요!

도메인 모델에서 관계와 규칙을 구분하는 방법

0

36

2

user-service jwt

0

31

2

애그리거트 질문있습니다!

0

29

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

44

1

스프링부트 버전 문의드립니다.

0

38

1

7강에 2분 쪽에 문의 있습니다.

0

13

2

gRPC 실무에서 질문

0

35

2

5강 43초 부분에서 에러가 납니다.

0

20

2

강의보다 바로 여쭤봅니다.

0

72

2

Aggregate 하위에 꼬리를 무는 Entity 는?

0

134

2

헥사곤 아키텍쳐 관련하여 문의드립니다.

2

168

2

VO 클래스의 불변 필드 선언을 하지 않으신 이유?

0

212

2

RentalCard 의 calculateLateFee 메서드 구현이 잘못된 것 같습니다.

1

161

2

UserCase가 많은데... 이유?

0

504

1

음성 부분이 너무 깨지는데...

0

357

1

CQRS 질문 드립니다.

0

360

1

강의 음성 및 영상

0

349

1

domain.model.event에 정의되는 객체들에 대한 질문이 있습니다

0

367

1

수업에 사용한 소스코드 문의

0

595

1

EDA 이해

0

467

1

MSA 구조에서 공통 클래스

0

901

2

@Repository 두 곳에서 사용하시는 이유

0

459

1

Entity와 VO에 대해..

0

764

1

DTO 클래스의 위치에 대해 질문있습니다!

1

759

1