inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Event Sourcing + CQRS + Saga Pattern

Event Sourcing 관련

702

hungryo

작성한 질문수 22

0

안녕하세요.

강의 내용중에 Event Driven Architecture 파트 설명중에 Commit Trancation에서는 상태값을 두어 하나의 트랜잭션에 여러 Row가 기록되지 않는데,

다음에 설명하는 Event Sourcing 파트에서는 데이터의 마지막 상태만 저장하는 것이 아닌, 해당 데이터에 수행된 전체 이력을 기록한다고 설명하고 있습니다.

이 부분이 헷갈리는데, 데이터를 관리하는 방식이 서로 다른데 (그 외 Saga pattern 등) 상황에 맞게 쓰면 된다는것인가요?

 

Event Driven Architecture라는 큰 개념이 있고 그 하위?에는 Event Sourcing, Saga pattern 등 다양항 방법이 있다고 생각하고 있는데 잘못 이해한것일까요?

 

감사합니다.

 

spring-cloud JPA spring-boot architecture Kafka msa

답변 1

1

Dowon Lee

안녕하세요, 이도원입니다. 

Event Sourcing과 Event Driven Architecture를 다시 정리하면, Event Sourcing은 이벤트를 사용하여 상태를 나타내는 것이고, Event Driven Architecture에서 이벤트는 다른 서비스 경계와 통신하는 데 사용됩니다. 

Event Sourcing은 데이터를 저장하는 접근 방식 중 하나입니다. 현재 데이터의 상태를 저장하는 것 대신 이벤트를 저장하게 되고, 이벤트는 시스템에서 발생한 상태의 변경을 나타냅니다.

Event Driven Architecture는 이벤트를 사용하여 다른 서비스와 통신하는 데에 사용됩니다. 일반적으로 메시지 브로커(또는 이벤트 로그)를 활용하여 발행/구독자 패턴을 사용하게 되는데, 이벤트를 게시하고 다른 경계 내에서 비동기식으로 이벤트를 소비하는 방식입니다. 게시자는 이벤트를 소비하는 사람을 모르고, 소비자 역시 서로의 존재를 모릅니다. 이벤트 기반 아키텍처는 서비스 경계 간의 느슨한 결합 방식을 유지해 주며, 강의에서도 사용한 Kafka를 이용한 형태가 여기에 속한다고 보시면 될 것 같습니다. 

끝으로 Saga Pattern은, Event Sourcing을 활용하며, 마이크로서비스들끼리 이벤트를 주고받아 특정 마이크로서비스에서의 작업이 실패하면 이전까지 작업이 완료된 마이크로서비스들에게 보상 이벤트를 소싱함으로써 분산 환경에서도 atomicity를 보장할 수 있도록 해주는 개발 패턴이라고 보시면 될 것 같습니다. 

감사합니다. 

kafka 업데이트 강의 듣고 시포요

0

104

2

강의 교안

0

95

2

마이크로서비스간 통신 시, 인증 처리

0

102

2

api gateway 에서 인증 처리

0

70

1

섹션 19 질문드립니다

0

72

2

강의 자료 업데이트

0

96

2

부하분산 강의 섹션

0

62

1

강의자료는 어디에서?

0

95

2

강의 자료는 어디서 다운 받을 수 있나요?

0

125

2

전체 사용자 조회시 오류

0

63

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

117

2

학습 방향

0

101

2

카프카 커넥터 사용 목적 문의

0

89

2

kafka 강의

0

115

2

서비스 디스커버리 종류

0

90

2

강의 자료에 대해서 궁금해요

0

123

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

91

2

Kafka Source Connect 버전 에러

0

93

2

소스커넥터는 사용안한 거 맞죠?

0

84

2

강의자료 업데이트 문의

0

98

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

63

1

강의 업데이트 계획이 궁금합니다.

0

117

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

167

2

어떤 것이 업데이트 된 건가요?

0

168

2