토픽 43 / 192·소프트웨어 설계와 아키텍처
이벤트 기반 아키텍처 (EDA, Event-Driven Architecture)
이벤트 기반 아키텍처 (EDA, Event-Driven Architecture)
이벤트의 생성, 감지, 소비를 중심으로 시스템 컴포넌트가 비동기적으로 통신하는 아키텍처 스타일
핵심 패턴
- •Event Notification: 이벤트 발생만 알림, 소비자가 데이터 조회
- •Event-Carried State Transfer: 이벤트에 필요한 데이터 포함, 추가 조회 불필요
- •Event Sourcing: 상태 변경을 이벤트로 저장, 현재 상태 = 이벤트 재생 결과
- •CQRS (Command Query Responsibility Segregation): 쓰기(Command) 모델과 읽기(Query) 모델 분리
구성요소: 이벤트 프로듀서, 이벤트 브로커(Kafka, RabbitMQ), 이벤트 컨슈머
장점: 느슨한 결합, 확장성, 실시간 반응, 감사 추적(Event Sourcing)
단점: 최종 일관성, 디버깅 어려움, 이벤트 순서 보장 복잡
비교: EDA(이벤트/비동기/느슨결합) vs 요청-응답(동기/강한결합) vs 메시지큐(1:1/비동기)
연관: 마이크로서비스, Kafka, Saga 패턴, CQRS