Event Driven Architecture
- 시스템 구성 요소들이 이벤트와 이벤트 핸들러로 서로 소통하는 구조. 관심사를 분리해 전체적인 결합도를 낮추기 위해 사용.
- 유연한 구조, 뛰어난 확장성이 특징
- 추가적인 컨슈머 필요하면 구독만 추가하면 됨.
구성 요소 4가지
- 이벤트
- 이벤트 발행자
- 이벤트 리스너
- 버스 (통로)
Internal Event vs External Event
Internal Event
- 시스템 내 컴포넌트 간 통신
- 목적
- 내부 도메인 로직과 부가적인 정책을 분리하기 위해서
- long transaction 분리
External Event
- 시스템 간 통신
- 카프카와 같은 이벤트 스트리밍 플랫폼, 혹은 메시지 브로커를 이용해서 처리
관련 영상
우아한형제들 EDA 예시(외부이벤트, 스프링)
https://www.youtube.com/watch?v=dJ5C4qRqAgA
- 내부 이벤트는 스프링 이벤트 사용 중
- 외부 이벤트는 카프카 사용 중
댓글