728x90
1. 세션 시청 배경
- 차세대 프로젝트에 MSA, Event-Driven/Domain-Driven Architecture 도입
- 이벤트 아키텍처에 대한 이해도 향상을 위함
- Java Spring framework, Kafka 기반 이벤트 아키텍처 구축에 대한 이해도 향상 요함
2. 내용
- Micro-Service Architecture
- 마이크로서비스(microservice)는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법이다.
- 느슨한 결합을 위해 Event-Driven Architecture을 도입하였다.
- 이벤트
- 발행해야할 이벤트는 이벤트로 인해 달성하려는 목적이 아닌 도메인 이벤트 그 자체
- 3개의 이벤트 발행, 구독 계층을 두는 Architecture 설계하였음
- 어플리케이션 이벤트
- 주요 행위와 트랜잭션 공유
- 주요 행위와 성능 공유
- 주요 행위와 강한 정합성 보장이 필요한 작업
- 열린 내부 이벤트
- 주요 행위와 트랜잭션 분리
- 주요 행위와 성능 분리
- 주요 행위와 강한 정합성 보장이 필요하지 않은 작업
- 닫힌 외부 이벤트
- 세 번 째 구독 계층에서는 페이로드 값 변경에 영향 받지 않게 설계해야 함
- Zero-payload 정책 적용
- 이벤트 저장소
- 이벤트 로그를 관리하는 저장소 ex) DB 테이블
- 이벤트 유실을 방지함
- Transaction Outbox Pattern 도입
- 이벤트 로그를 따로 저장소를 두고 관리하는 기법
- 저장소 데이터 형태
- 식별자 - 누가
- 속성 - 어떤 변화가
- 행위 - 무엇을 하여
- 시간 - 언제
- 이벤트 구독 시점에 이벤트 저장소 구독 여부 컬럼 변경을 통해 데이터 유실 방지
- 이벤트 저장소 컬럼 지정을 통해 분산되어 있던 기록 테이블 통합하여 한 테이블로 로그 저장/분석 가능
3. 느낀점
적절한 이벤트 및 저장소 활용은 효율적인 로그 기록/분석을 유도하고 더 나아가 MSA 상의 데이터 정합성 향상에 적합한 것 같다.
출처
2022 우아콘 - 회원시스템 이벤트기반 아키텍처 구축하기
: https://www.woowacon.com/ko/detailVideo/16
728x90
'컨퍼런스(Conference, Session) > 우아콘(WOOWACON)' 카테고리의 다른 글
2022 배달의민족 우아콘(Woowacon) 시청 후기 (0) | 2022.10.31 |
---|---|
[2022 우아콘] API Gateway 패턴에는 API Gateway가 없다 (0) | 2022.10.27 |
[2022 우아콘]기획자님들! 개발자가 아키텍처에 집착하는 이유, 쉽게 알려드립니다 (0) | 2022.10.19 |
댓글