**이벤트 기반 아키텍처(EDA)**는 구성 요소가 직접 호출이 아니라 이벤트(일어난 일)를 생성하고 그에 반응함으로써 통신하는 설계입니다. 느슨한 결합, 확장성, 응답성을 가능하게 하며, 현대 분산 시스템에서 흔합니다.
이벤트 기반 아키텍처란
구성 요소가 이벤트(무언가 일어났다는 알림)를 통해 통신함:
→ 프로듀서가 이벤트를 발행 ("주문 접수", "사용자 가입") 누가 처리하는지 모른 채
→ 컨슈머가 관심 있는 이벤트에 반응 (비동기로)
→ 이벤트 브로커/버스 (Kafka, 메시지 큐)가 이벤트를 라우팅
→ 구성 요소가 디커플링됨 → 직접 호출이 아니라 이벤트에 반응.
패턴과 이점
패턴:
→ PUB/SUB → 이벤트 발행; 여러 구독자가 반응
→ 이벤트 스트리밍 (Kafka) → 영속적 이벤트 로그; 컨슈머가 스트림 처리
→ EVENT SOURCING → 상태를 이벤트 시퀀스로 저장 (이벤트가 진실의 원천)
→ CQRS → 읽기/쓰기 모델 분리, 종종 이벤트 기반
이점:
✓ 느슨한 결합 → 프로듀서/컨슈머 독립 (프로듀서 변경 없이 컨슈머 추가)
✓ 확장성 → 비동기, 부하 분산; 컨슈머가 독립적으로 확장
✓ 응답성 → 실시간으로 이벤트에 반응; 확장 가능 (새 요구에 새 컨슈머)
✓ 복원력 → 이벤트 버퍼링; 구성 요소가 독립적으로 실패
