내용 출처: 패스트 캠퍼스 9개 프로젝트로 경험하는 대용량 트래픽 & 데이터 처리 초격차 패키지
<aside>
👨💻 목차
</aside>
1. EDA의 장점
- 느슨한 결합 (Loose Coupling)
- 컴포넌트(서비스)간 느슨한 결합으로 컴포넌트 변경 영향도를 최소화 한다.
- 비즈니스 로직을 독립적으로 수정 가능하다.
- 확장성
- 분산과 비동기의 특성상 확장이 용이하다. (사용되는 비용과 side-effect가 적다.)
- 확장의 대상은 이벤트 발행자, 소비자, 브로커가 될 수 있다.
- 실시간 처리
- 실시간으로 끊임없이 생성되는 데이터를 처리하는데 유리하다.
- 비동기의 특성으로 안정적인 처리가 가능하다.
- 분산 아키텍처 (MSA)
- 분산 시스템의 특징으로 MSA에 잘 어울린다.
- MSA가 요구하는 서비스간의 낮은 결합도를 EDA의 느슨한 결합특성이 충족시킨다.
2. EDA의 단점
- 복잡성
- 직접 호출보다 비동기 통신은 이해하기 어렵고 구현하기도 어렵다.
- 보내고 응답을 기다리는게 아니라 보내놓고 다른 처리를 계속 하다가 돌아왔을때 받아진 무언가를 통해 작업을 해야해서 코딩과 응답 추적이 어려워진다.
- 이벤트 브로커가 중간에 추가되는 등, 증가하는 컴포넌트로 인한 복잡도가 추가된다.