Files
2nd/10_Wiki/Topics_Arch/Event_Driven_Architecture.md
T

2.7 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, tags, raw_sources, last_reinforced, github_commit
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score tags raw_sources last_reinforced github_commit
P-REINFORCE-WIKI-ARCH-EDA 이벤트 기반 아키텍처 (Event-Driven Architecture, EDA) 10_Wiki/🏗️ Topics_Arch verified
EDA
이벤트 기반 설계
비동기 메시징
A 1.0
Architecture
EDA
Asynchronous
Message_Broker
Loose_Coupling
Datacollector_Export_2026-05-02
2026-05-02

이벤트 기반 아키텍처 (Event-Driven Architecture, EDA)

1. 개요

Event-Driven Architecture (EDA)는 시스템 컴포넌트 간의 통신을 '이벤트(Event)'의 발행과 소비를 통해 비동기적으로 수행하는 아키텍처 패러다임이다. 직접적인 함수 호출 대신 상태 변화나 사건 발생을 알리는 메시지를 주고받음으로써 시스템 간의 느슨한 결합(Loose Coupling)을 실현한다.

2. 핵심 구성 요소

  • 이벤트 생산자 (Producer): 특정 사건 발생 시 이벤트를 생성하여 브로커에 발행.
  • 이벤트 브로커 (Broker): 발행된 이벤트를 수신하여 관심 있는 소비자에게 라우팅 (예: Kafka, RabbitMQ).
  • 이벤트 소비자 (Consumer): 수신한 이벤트에 반응하여 비즈니스 로직을 실행.
  • 데드 레터 큐 (Dead Letter Queue, DLQ): 처리 실패한 이벤트를 격리하여 사후 분석 및 재처리를 지원.

3. 실전 설계 원칙

  • 멱등성 (Idempotency) 보장: 동일한 이벤트가 중복 처리되어도 시스템 상태가 일관되게 유지되도록 소비자 로직 설계 필수.
  • 비동기 오케스트레이션: 마이크로서비스 간의 복잡한 워크플로우를 직접 호출 없이 이벤트 흐름으로 조정.
  • 장애 격리: 특정 서비스의 장애가 전체 시스템으로 전파되지 않도록 브로커를 통한 완충 지대 형성.

4. 트레이드오프

  • 장점: 높은 확장성, 유연한 시스템 변경, 실시간 데이터 처리 능력.
  • 단점: 시스템 복잡도 증가, 분산 추적(Distributed Tracing)의 어려움, 결과적 일관성(Eventual Consistency) 관리 비용.

🧪 검증 상태 (Validation)

  • 정보 상태: 검증 완료 (Verified)
  • 출처 신뢰도: A
  • 검토 이유: 현대적 분산 시스템의 탄력성과 확장성을 위한 핵심 아키텍처 패턴 정립.